Chromium Code Reviews| Index: content/public/renderer/webrtc_cast_send_transport.h |
| diff --git a/content/public/renderer/webrtc_cast_send_transport.h b/content/public/renderer/webrtc_cast_send_transport.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0198debe9e2bbb960c5ecd90d0c9acb5b20b067f |
| --- /dev/null |
| +++ b/content/public/renderer/webrtc_cast_send_transport.h |
| @@ -0,0 +1,111 @@ |
| +// 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. |
| + |
| +#ifndef CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_CAST_SEND_TRANSPORT_H_ |
|
jam
2013/10/11 16:47:14
nit: get rid of _MEDIA_
Alpha Left Google
2013/10/11 20:24:21
Done.
|
| +#define CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_CAST_SEND_TRANSPORT_H_ |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "base/callback.h" |
|
jam
2013/10/11 16:47:14
nit: not needed
Alpha Left Google
2013/10/11 20:24:21
Done.
|
| +#include "content/common/content_export.h" |
| + |
| +namespace WebKit { |
| +class WebMediaStreamTrack; |
| +} // namespace WebKit |
| + |
| +namespace content { |
| + |
| +class WebRtcUdpTransport; |
| + |
| +// A key value pair structure for codec specific parameters. |
| +struct CONTENT_EXPORT WebRtcCodecSpecificParam { |
|
jam
2013/10/11 16:47:14
this isn't used?
Alpha Left Google
2013/10/11 20:24:21
Thanks. I forgot to use this WebRtcRtpPayloadParam
|
| + std::string key; |
| + std::string value; |
| + |
| + WebRtcCodecSpecificParam(); |
| + ~WebRtcCodecSpecificParam(); |
| +}; |
| + |
| +// Defines the basic properties of a payload supported by cast transport. |
| +struct CONTENT_EXPORT WebRtcRtpPayloadParam { |
| + // RTP specific field that identifies the content type. |
| + int payload_type; |
| + |
| + // RTP specific field to identify a stream. |
| + int ssrc; |
| + |
| + // Update frequency of payload sample. |
| + int clock_rate; |
| + |
| + // Uncompressed bitrate. |
| + int bitrate; |
| + |
| + // Number of audio channels. |
| + int channels; |
| + |
| + // Width and height of the video content. |
| + int width; |
| + int height; |
| + |
| + // Name of the codec used. |
| + std::string codec_name; |
| + |
| + WebRtcRtpPayloadParam(); |
|
jam
2013/10/11 16:47:14
can you inline this without getting a clang error?
Alpha Left Google
2013/10/11 20:24:21
I tried but clang complained that I should put the
|
| + ~WebRtcRtpPayloadParam(); |
| +}; |
| + |
| +// Defines the capabilities of the transport. |
| +struct CONTENT_EXPORT WebRtcRtpCaps { |
| + // Defines a list of supported payloads. |
| + std::vector<WebRtcRtpPayloadParam> payloads; |
| + |
| + // Names of supported RTCP features. |
| + std::vector<std::string> rtcp_features; |
| + |
| + // Names of supported FEC (Forward Error Correction) mechanisms. |
| + std::vector<std::string> fec_mechanism; |
| + |
| + WebRtcRtpCaps(); |
| + ~WebRtcRtpCaps(); |
| +}; |
| + |
| +typedef WebRtcRtpCaps WebRtcRtpParams; |
| + |
| +// This interface defines operations needed by an application to use the |
| +// Cast transport protocol and interact with WebRTC objects. |
| +// This interface takes input from a WebMediaStreamTrack which contains |
| +// audio or video stream and then send the encoded stream to the |
| +// underlying transport, e.g. a UDP transport. |
| +class CONTENT_EXPORT WebRtcCastSendTransport { |
|
jam
2013/10/11 16:47:14
nit: export not needed
Alpha Left Google
2013/10/11 20:24:21
Done.
|
| + public: |
| + // Return capabilities currently spported by this transport. |
| + virtual WebRtcRtpCaps getCaps() = 0; |
|
jam
2013/10/11 16:47:14
nit: please check the google style guide
Alpha Left Google
2013/10/11 20:24:21
Oooops sorry.. Been doing too much blink lately.
|
| + |
| + // Return parameters set to this transport. |
| + virtual WebRtcRtpParams getParams() = 0; |
| + |
| + // Return the best parameters given the capabilities of remote peer. |
| + virtual WebRtcRtpParams createParams(WebRtcRtpCaps remote_caps) = 0; |
| + |
| + // Begin encoding of media stream from |track| and submit the encoded |
| + // stream to underlying transport. |
| + virtual void start( |
| + WebKit::WebMediaStreamTrack* track, |
| + WebRtcRtpParams params) = 0; |
| + |
| + // Stop encoding. |
| + virtual void stop() = 0; |
| + |
| + protected: |
| + virtual ~WebRtcCastSendTransport() {} |
| +}; |
| + |
| +// Create a Cast send transport providing the underlying UDP transport. |
| +CONTENT_EXPORT WebRtcCastSendTransport* CreateWebRtcCastSendTransport( |
|
jam
2013/10/11 16:47:14
nit: put this as a static method in WebRtcCastSend
Alpha Left Google
2013/10/11 20:24:21
Done.
|
| + WebRtcUdpTransport* udp_transport); |
| + |
| +} // namespace content |
| + |
| +#endif // CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_CAST_SEND_TRANSPORT_H_ |