| Index: content/renderer/media/media_stream_video_source.h
|
| ===================================================================
|
| --- content/renderer/media/media_stream_video_source.h (revision 244998)
|
| +++ content/renderer/media/media_stream_video_source.h (working copy)
|
| @@ -19,6 +19,8 @@
|
|
|
| namespace content {
|
|
|
| +class MediaStreamDependencyFactory;
|
| +
|
| // MediaStreamVideoSource is an interface used for sending video frames to a
|
| // MediaStreamVideoTrack.
|
| // http://dev.w3.org/2011/webrtc/editor/getusermedia.html
|
| @@ -26,23 +28,51 @@
|
| class CONTENT_EXPORT MediaStreamVideoSource
|
| : public MediaStreamSourceExtraData {
|
| public:
|
| + explicit MediaStreamVideoSource(
|
| + MediaStreamDependencyFactory* factory);
|
| +
|
| // Puts |track| in the registered tracks list. Will later
|
| // deliver frames to it according to |constraints|.
|
| - void AddTrack(const blink::WebMediaStreamTrack& track,
|
| - const blink::WebMediaConstraints& constraints);
|
| + virtual void AddTrack(const blink::WebMediaStreamTrack& track,
|
| + const blink::WebMediaConstraints& constraints);
|
|
|
| // Removes |track| from the registered tracks list, i.e. will stop delivering
|
| // frame to |track|.
|
| - void RemoveTrack(const blink::WebMediaStreamTrack& track);
|
| + virtual void RemoveTrack(const blink::WebMediaStreamTrack& track);
|
|
|
| + // TODO(ronghuawu): Remove webrtc::VideoSourceInterface from the public
|
| + // interface of this class.
|
| + webrtc::VideoSourceInterface* GetAdapter() {
|
| + return adapter_;
|
| + }
|
| +
|
| protected:
|
| + // Sets an external adapter. Must be called before Init, which creates a
|
| + // default adapter if the adapter is not set already.
|
| + void SetAdapter(webrtc::VideoSourceInterface* adapter) {
|
| + DCHECK(!adapter_);
|
| + adapter_ = adapter;
|
| + }
|
| +
|
| + // Called by the derived class before any other methods except SetAdapter.
|
| + void Init();
|
| +
|
| // Sets ready state and notifies the ready state to all registered tracks.
|
| virtual void SetReadyState(blink::WebMediaStreamSource::ReadyState state);
|
|
|
| // Delivers |frame| to registered tracks according to their constraints.
|
| + // Note: current implementation assumes |frame| be contiguous layout of image
|
| + // planes and I420.
|
| virtual void DeliverVideoFrame(const scoped_refptr<media::VideoFrame>& frame);
|
|
|
| virtual ~MediaStreamVideoSource();
|
| +
|
| + private:
|
| + MediaStreamDependencyFactory* factory_;
|
| + scoped_refptr<webrtc::VideoSourceInterface> adapter_;
|
| + int width_;
|
| + int height_;
|
| + base::TimeDelta first_frame_timestamp_;
|
| };
|
|
|
| } // namespace content
|
|
|