Index: content/renderer/pepper/pepper_media_stream_video_track_host.h |
diff --git a/content/renderer/pepper/pepper_media_stream_video_track_host.h b/content/renderer/pepper/pepper_media_stream_video_track_host.h |
index e4e603c43cd3cdf60373d9ab71963e844cb94834..b510377001ceb21ae3de00bbc76d9e436fd7a8ea 100644 |
--- a/content/renderer/pepper/pepper_media_stream_video_track_host.h |
+++ b/content/renderer/pepper/pepper_media_stream_video_track_host.h |
@@ -10,8 +10,8 @@ |
#include "base/compiler_specific.h" |
#include "base/macros.h" |
#include "base/memory/weak_ptr.h" |
-#include "content/public/common/media_stream_request.h" |
#include "content/public/renderer/media_stream_video_sink.h" |
+#include "content/renderer/media/media_stream_video_source.h" |
#include "content/renderer/pepper/pepper_media_stream_track_host_base.h" |
#include "media/base/video_frame.h" |
#include "ppapi/c/ppb_video_frame.h" |
@@ -21,10 +21,9 @@ |
namespace content { |
-class MediaStreamSource; |
- |
class PepperMediaStreamVideoTrackHost : public PepperMediaStreamTrackHostBase, |
- public MediaStreamVideoSink { |
+ public MediaStreamVideoSink, |
+ public MediaStreamVideoSource { |
public: |
// Input mode constructor. |
// In input mode, this class passes video frames from |track| to the |
@@ -48,11 +47,6 @@ |
blink::WebMediaStreamTrack track() { return track_; } |
private: |
- // Implements a MediaStreamVideoSource that drives this host (output mode |
- // only). VideoSource holds a weak reference to the host, and sets/clears |
- // |frame_deliverer_|. |
- class VideoSource; |
- |
void InitBuffers(); |
// PepperMediaStreamTrackHostBase overrides: |
@@ -65,6 +59,20 @@ |
void OnVideoFrame(const scoped_refptr<media::VideoFrame>& frame, |
base::TimeTicks estimated_capture_time); |
+ |
+ // MediaStreamVideoSource overrides: |
+ void GetCurrentSupportedFormats( |
+ int max_requested_width, |
+ int max_requested_height, |
+ double max_requested_frame_rate, |
+ const VideoCaptureDeviceFormatsCB& callback) override; |
+ |
+ void StartSourceImpl( |
+ const media::VideoCaptureFormat& format, |
+ const blink::WebMediaConstraints& constraints, |
+ const VideoCaptureDeliverFrameCB& frame_callback) override; |
+ |
+ void StopSourceImpl() override; |
// ResourceHost overrides: |
void DidConnectPendingHostToResource() override; |
@@ -107,6 +115,7 @@ |
// TODO(ronghuawu): Remove |type_| and split PepperMediaStreamVideoTrackHost |
// into 2 classes for read and write. |
TrackType type_; |
+ bool output_started_; |
// Internal class used for delivering video frames on the IO-thread to |
// the MediaStreamVideoSource implementation. |