blob: 15a7f0a7f493b23fb3a3ad6036e54620d9f8a600 [file] [log] [blame]
// Copyright 2015 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.receiverSession</code> API creates a Cast
// receiver session and adds the resulting audio and video tracks to a
// MediaStream.
namespace cast.streaming.receiverSession {
// The UDP socket address and port.
dictionary IPEndPoint {
DOMString address;
long port;
// RTP receiver parameters.
dictionary RtpReceiverParams {
// Maximum latency in milliseconds. This parameter controls the logic
// of flow control. Implementation can adjust latency adaptively and
// tries to keep it under this threshold. A larger value allows smoother
// playback at the cost of higher latency.
long maxLatency;
DOMString codecName;
// Synchronization source identifier for incoming data.
long senderSsrc;
// The SSRC used to send RTCP reports back to the sender.
long receiverSsrc;
// RTP time units per second, defaults to 48000 for audio
// and 90000 for video.
long? rtpTimebase;
// 32 bytes hex-encoded AES key.
DOMString? aesKey;
// 32 bytes hex-encoded AES IV (Initialization vector) mask.
DOMString? aesIvMask;
callback ErrorCallback = void (DOMString error);
interface Functions {
// Creates a Cast receiver session which receives data from a UDP
// socket. The receiver will decode the incoming data into an audio
// and a video track which will be added to the provided media stream.
// The |audioParams| and |videoParams| are generally provided by the
// sender through some other messaging channel.
// |audioParams| : Audio stream parameters.
// |videoParams| : Video stream parameters.
// |localEndpoint| : Local IP and port to bind to.
// |height| : Video height.
// |width| : Video width.
// |maxFrameRate| : Max video frame rate.
// |mediaStreamURL| : URL of MediaStream to add the audio and video to.
// |transport_options| : Optional transport settings.
[nocompile] static void createAndBind(
RtpReceiverParams audioParams,
RtpReceiverParams videoParams,
IPEndPoint localEndpoint,
long maxWidth,
long maxHeight,
double maxFrameRate,
DOMString mediaStreamURL,
ErrorCallback error_callback,
optional object transport_options);