Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5739)

Unified Diff: content/renderer/media/media_stream_video_track.h

Issue 2790823002: Spec compliant video constraints for getUserMedia behind flag. (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;
« no previous file with comments | « content/renderer/media/media_stream_video_source_unittest.cc ('k') | content/renderer/media/media_stream_video_track.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698