Chromium Code Reviews| Index: content/renderer/media/media_stream_video_source.h |
| diff --git a/content/renderer/media/media_stream_video_source.h b/content/renderer/media/media_stream_video_source.h |
| index 2130916b1b9c296813fbb94b9234241a8e916385..affd99771c1e436ef93ba343afe5690e5bff4427 100644 |
| --- a/content/renderer/media/media_stream_video_source.h |
| +++ b/content/renderer/media/media_stream_video_source.h |
| @@ -19,6 +19,8 @@ class VideoFrame; |
| 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,16 +28,33 @@ namespace content { |
| class CONTENT_EXPORT MediaStreamVideoSource |
| : public MediaStreamSourceExtraData { |
| public: |
| + 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. |
| + // 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) { |
|
perkj_chrome
2014/01/14 20:12:25
nit: Can be protected.
Ronghua Wu (Left Chromium)
2014/01/14 22:52:44
Done, I was just trying to put those 2 together.
|
| + DCHECK(!adapter_); |
| + adapter_ = adapter; |
| + } |
| + webrtc::VideoSourceInterface* GetAdapter() { |
| + return adapter_; |
| + } |
| protected: |
| + virtual void Init(); |
| + |
| // Sets ready state and notifies the ready state to all registered tracks. |
| virtual void SetReadyState(blink::WebMediaStreamSource::ReadyState state); |
| @@ -43,6 +62,13 @@ class CONTENT_EXPORT MediaStreamVideoSource |
| 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 |