Index: content/renderer/media/media_stream_video_track.h |
diff --git a/content/renderer/media/media_stream_video_track.h b/content/renderer/media/media_stream_video_track.h |
index 72ead10c4432aff5810f0db957e27d65d73cc425..1b6771b5af0605c464df84d5238e292458bd20e5 100644 |
--- a/content/renderer/media/media_stream_video_track.h |
+++ b/content/renderer/media/media_stream_video_track.h |
@@ -5,6 +5,7 @@ |
#ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_VIDEO_TRACK_H_ |
#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_VIDEO_TRACK_H_ |
+#include <memory> |
#include <vector> |
#include "base/compiler_specific.h" |
@@ -19,6 +20,8 @@ |
namespace content { |
+struct VideoTrackAdapterSettings; |
+ |
// MediaStreamVideoTrack is a video specific representation of a |
// blink::WebMediaStreamTrack in content. It is owned by the blink object |
// and can be retrieved from a blink object using |
@@ -29,25 +32,53 @@ class CONTENT_EXPORT MediaStreamVideoTrack : public MediaStreamTrack { |
// MediaStreamVideoTrack instance. The MediaStreamVideoTrack object is owned |
// by the blink object in its WebMediaStreamTrack::ExtraData member. |
// |callback| is triggered if the track is added to the source |
- // successfully and will receive video frames that match |constraints| |
- // or if the source fail to provide video frames. |
+ // successfully and will receive video frames that match the given settings |
+ // or if the source fails to provide video frames. |
// If |enabled| is true, sinks added to the track will |
- // receive video frames when the source deliver frames to the track. |
+ // receive video frames when the source delivers frames to the track. |
+ // TODO(guidou): Remove the variant that takes a |constraints| argument. |
+ // http://crbug.com/706408 |
+ static blink::WebMediaStreamTrack CreateVideoTrack( |
+ MediaStreamVideoSource* source, |
+ const MediaStreamVideoSource::ConstraintsCallback& callback, |
+ bool enabled); |
static blink::WebMediaStreamTrack CreateVideoTrack( |
MediaStreamVideoSource* source, |
const blink::WebMediaConstraints& constraints, |
const MediaStreamVideoSource::ConstraintsCallback& callback, |
bool enabled); |
+ static blink::WebMediaStreamTrack CreateVideoTrack( |
+ MediaStreamVideoSource* source, |
+ const VideoTrackAdapterSettings& adapter_settings, |
+ const base::Optional<bool>& noise_reduction, |
+ bool is_screencast, |
+ double min_frame_rate, |
+ const MediaStreamVideoSource::ConstraintsCallback& callback, |
+ bool enabled); |
static MediaStreamVideoTrack* GetVideoTrack( |
const blink::WebMediaStreamTrack& track); |
- // Constructor for video tracks. |
+ // Constructors for video tracks. |
+ // TODO(guidou): Remove the variant that takes a |constraints| argument. |
+ // http://crbug.com/706408 |
+ MediaStreamVideoTrack( |
+ MediaStreamVideoSource* source, |
+ const MediaStreamVideoSource::ConstraintsCallback& callback, |
+ bool enabled); |
MediaStreamVideoTrack( |
MediaStreamVideoSource* source, |
const blink::WebMediaConstraints& constraints, |
const MediaStreamVideoSource::ConstraintsCallback& callback, |
bool enabled); |
+ MediaStreamVideoTrack( |
+ MediaStreamVideoSource* source, |
+ const VideoTrackAdapterSettings& adapter_settings, |
+ const base::Optional<bool>& noise_reduction, |
+ bool is_screen_cast, |
+ double min_frame_rate, |
+ const MediaStreamVideoSource::ConstraintsCallback& callback, |
+ bool enabled); |
~MediaStreamVideoTrack() override; |
// MediaStreamTrack overrides. |
@@ -59,7 +90,26 @@ class CONTENT_EXPORT MediaStreamVideoTrack : public MediaStreamTrack { |
void OnReadyStateChanged(blink::WebMediaStreamSource::ReadyState state); |
- const blink::WebMediaConstraints& constraints() const { return constraints_; } |
+ const blink::WebMediaConstraints& constraints() const { |
+ DCHECK(IsOldVideoConstraints()); |
+ return constraints_; |
+ } |
+ const base::Optional<bool>& noise_reduction() const { |
+ DCHECK(!IsOldVideoConstraints()); |
+ return noise_reduction_; |
+ } |
+ bool is_screencast() const { |
+ DCHECK(!IsOldVideoConstraints()); |
+ return is_screencast_; |
+ } |
+ double min_frame_rate() const { |
+ DCHECK(!IsOldVideoConstraints()); |
+ return min_frame_rate_; |
+ } |
+ const VideoTrackAdapterSettings& adapter_settings() const { |
+ DCHECK(!IsOldVideoConstraints()); |
+ return *adapter_settings_; |
+ } |
// Setting information about the track size. |
// Called from MediaStreamVideoSource at track initialization. |
@@ -94,8 +144,15 @@ class CONTENT_EXPORT MediaStreamVideoTrack : public MediaStreamTrack { |
class FrameDeliverer; |
const scoped_refptr<FrameDeliverer> frame_deliverer_; |
+ // TODO(guidou): remove this field. http://crbug.com/706408 |
const blink::WebMediaConstraints constraints_; |
+ // TODO(guidou): Make this field a regular field instead of a unique_ptr. |
+ std::unique_ptr<VideoTrackAdapterSettings> adapter_settings_; |
+ base::Optional<bool> noise_reduction_; |
+ bool is_screencast_; |
+ double min_frame_rate_; |
+ |
// Weak ref to the source this tracks is connected to. |
base::WeakPtr<MediaStreamVideoSource> source_; |