blob: 29d43d9e8a6832f6e35aa7ec10b4d06344f6600a [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// The <code>chrome.cast.streaming.session</code> API creates a Cast
// session using WebMediaStreamTrack as sources. The session is composed
// by RTP streams and a network transport.
// Calling this API will generate corresponding resources for use with
// chrome.cast.streaming.rtpStream and chrome.cast.streaming.udpTransport
// APIs.
// Valid resource IDs are positive and non-zero.
namespace cast.streaming.session {
// Callback from the <code>create</code> method.
// |audioStreamId| : The audio RTP stream ID.
// |videoStreamId| : The video RTP stream ID.
// |udpTransportId| : The UDP transport ID.
callback CreateCallback = void (long audioStreamId,
long videoStreamId,
long udpTransportId);
interface Functions {
// Creates a Cast session using the provided audio and video track as
// source. The tracks must be of type MediaStreamTrack. This will
// create two RTP streams and a UDP transport that builds the session.
// Either |audioTrack| or |videoTrack| can be null but not both. This
// means creating a session with only audio or video. If a given
// track is null then the created stream ID will be null.
// |audioTrack| : the source audio track.
// |videoTrack| : the source video track.
// |callback| : Called when the sesion has been created.
[nocompile,allowAmbiguousOptionalArguments] static void create(
[instanceOf=MediaStreamTrack] optional object audioTrack,
[instanceOf=MediaStreamTrack] optional object videoTrack,
CreateCallback callback);