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

Side by Side Diff: content/renderer/media/webrtc/media_stream_video_webrtc_sink.cc

Issue 1729683002: Remove old-style constraints from Chrome internals (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CL ready to submit Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/webrtc/media_stream_video_webrtc_sink.h" 5 #include "content/renderer/media/webrtc/media_stream_video_webrtc_sink.h"
6 6
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/single_thread_task_runner.h" 8 #include "base/single_thread_task_runner.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/synchronization/lock.h" 10 #include "base/synchronization/lock.h"
11 #include "base/thread_task_runner_handle.h" 11 #include "base/thread_task_runner_handle.h"
12 #include "content/common/media/media_stream_options.h" 12 #include "content/common/media/media_stream_options.h"
13 #include "content/renderer/media/media_stream_constraints_util.h"
13 #include "content/renderer/media/media_stream_video_track.h" 14 #include "content/renderer/media/media_stream_video_track.h"
14 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" 15 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h"
15 16
16 namespace {
17
18 bool ConstraintKeyExists(const blink::WebMediaConstraints& constraints,
19 const blink::WebString& name) {
20 blink::WebString value_str;
21 return constraints.getMandatoryConstraintValue(name, value_str) ||
22 constraints.getOptionalConstraintValue(name, value_str);
23 }
24
25 } // anonymouse namespace
26
27 namespace content { 17 namespace content {
28 18
29 // Simple help class used for receiving video frames on the IO-thread from a 19 // Simple help class used for receiving video frames on the IO-thread from a
30 // MediaStreamVideoTrack and forward the frames to a WebRtcVideoCapturerAdapter 20 // MediaStreamVideoTrack and forward the frames to a WebRtcVideoCapturerAdapter
31 // on libjingle's worker thread. WebRtcVideoCapturerAdapter implements a video 21 // on libjingle's worker thread. WebRtcVideoCapturerAdapter implements a video
32 // capturer for libjingle. 22 // capturer for libjingle.
33 class MediaStreamVideoWebRtcSink::WebRtcVideoSourceAdapter 23 class MediaStreamVideoWebRtcSink::WebRtcVideoSourceAdapter
34 : public base::RefCountedThreadSafe<WebRtcVideoSourceAdapter> { 24 : public base::RefCountedThreadSafe<WebRtcVideoSourceAdapter> {
35 public: 25 public:
36 WebRtcVideoSourceAdapter( 26 WebRtcVideoSourceAdapter(
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 capture_adapter_->OnFrameCaptured(frame); 121 capture_adapter_->OnFrameCaptured(frame);
132 } 122 }
133 123
134 MediaStreamVideoWebRtcSink::MediaStreamVideoWebRtcSink( 124 MediaStreamVideoWebRtcSink::MediaStreamVideoWebRtcSink(
135 const blink::WebMediaStreamTrack& track, 125 const blink::WebMediaStreamTrack& track,
136 PeerConnectionDependencyFactory* factory) 126 PeerConnectionDependencyFactory* factory)
137 : web_track_(track) { 127 : web_track_(track) {
138 const blink::WebMediaConstraints& constraints = 128 const blink::WebMediaConstraints& constraints =
139 MediaStreamVideoTrack::GetVideoTrack(track)->constraints(); 129 MediaStreamVideoTrack::GetVideoTrack(track)->constraints();
140 130
141 bool is_screencast = ConstraintKeyExists( 131 std::string value;
142 constraints, base::UTF8ToUTF16(kMediaStreamSource)); 132 bool is_screencast = GetConstraintValueAsString(
133 constraints, &blink::WebMediaTrackConstraintSet::mediaStreamSource,
134 &value);
tommi (sloooow) - chröme 2016/03/14 18:37:47 add a comment that explains why we don't use |valu
hta - Chromium 2016/03/15 06:47:33 Done.
143 WebRtcVideoCapturerAdapter* capture_adapter = 135 WebRtcVideoCapturerAdapter* capture_adapter =
144 factory->CreateVideoCapturer(is_screencast); 136 factory->CreateVideoCapturer(is_screencast);
145 137
146 // |video_source| owns |capture_adapter| 138 // |video_source| owns |capture_adapter|
147 scoped_refptr<webrtc::VideoTrackSourceInterface> video_source( 139 scoped_refptr<webrtc::VideoTrackSourceInterface> video_source(
148 factory->CreateVideoSource(capture_adapter, 140 factory->CreateVideoSource(capture_adapter));
149 track.source().constraints()));
150 141
151 video_track_ = factory->CreateLocalVideoTrack(web_track_.id().utf8(), 142 video_track_ = factory->CreateLocalVideoTrack(web_track_.id().utf8(),
152 video_source.get()); 143 video_source.get());
153 144
154 video_track_->set_enabled(web_track_.isEnabled()); 145 video_track_->set_enabled(web_track_.isEnabled());
155 146
156 source_adapter_ = new WebRtcVideoSourceAdapter( 147 source_adapter_ = new WebRtcVideoSourceAdapter(
157 factory->GetWebRtcWorkerThread(), 148 factory->GetWebRtcWorkerThread(),
158 video_source, 149 video_source,
159 capture_adapter); 150 capture_adapter);
(...skipping 13 matching lines...) Expand all
173 RemoveFromVideoTrack(this, web_track_); 164 RemoveFromVideoTrack(this, web_track_);
174 source_adapter_->ReleaseSourceOnMainThread(); 165 source_adapter_->ReleaseSourceOnMainThread();
175 } 166 }
176 167
177 void MediaStreamVideoWebRtcSink::OnEnabledChanged(bool enabled) { 168 void MediaStreamVideoWebRtcSink::OnEnabledChanged(bool enabled) {
178 DCHECK(thread_checker_.CalledOnValidThread()); 169 DCHECK(thread_checker_.CalledOnValidThread());
179 video_track_->set_enabled(enabled); 170 video_track_->set_enabled(enabled);
180 } 171 }
181 172
182 } // namespace content 173 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698