| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/media_stream_video_track.h" | 5 #include "content/renderer/media/media_stream_video_track.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 wrapped_black_frame->metadata()->SetTimeTicks( | 193 wrapped_black_frame->metadata()->SetTimeTicks( |
| 194 media::VideoFrameMetadata::REFERENCE_TIME, reference_time); | 194 media::VideoFrameMetadata::REFERENCE_TIME, reference_time); |
| 195 } | 195 } |
| 196 | 196 |
| 197 return wrapped_black_frame; | 197 return wrapped_black_frame; |
| 198 } | 198 } |
| 199 | 199 |
| 200 // static | 200 // static |
| 201 blink::WebMediaStreamTrack MediaStreamVideoTrack::CreateVideoTrack( | 201 blink::WebMediaStreamTrack MediaStreamVideoTrack::CreateVideoTrack( |
| 202 MediaStreamVideoSource* source, | 202 MediaStreamVideoSource* source, |
| 203 const blink::WebMediaConstraints& constraints, | |
| 204 const MediaStreamVideoSource::ConstraintsCallback& callback, | |
| 205 bool enabled) { | |
| 206 DCHECK(IsOldVideoConstraints()); | |
| 207 blink::WebMediaStreamTrack track; | |
| 208 track.Initialize(source->Owner()); | |
| 209 track.SetTrackData( | |
| 210 new MediaStreamVideoTrack(source, constraints, callback, enabled)); | |
| 211 return track; | |
| 212 } | |
| 213 | |
| 214 // static | |
| 215 blink::WebMediaStreamTrack MediaStreamVideoTrack::CreateVideoTrack( | |
| 216 MediaStreamVideoSource* source, | |
| 217 const MediaStreamVideoSource::ConstraintsCallback& callback, | 203 const MediaStreamVideoSource::ConstraintsCallback& callback, |
| 218 bool enabled) { | 204 bool enabled) { |
| 219 blink::WebMediaStreamTrack track; | 205 blink::WebMediaStreamTrack track; |
| 220 track.Initialize(source->Owner()); | 206 track.Initialize(source->Owner()); |
| 221 track.SetTrackData(new MediaStreamVideoTrack(source, callback, enabled)); | 207 track.SetTrackData(new MediaStreamVideoTrack(source, callback, enabled)); |
| 222 return track; | 208 return track; |
| 223 } | 209 } |
| 224 | 210 |
| 225 // static | 211 // static |
| 226 blink::WebMediaStreamTrack MediaStreamVideoTrack::CreateVideoTrack( | 212 blink::WebMediaStreamTrack MediaStreamVideoTrack::CreateVideoTrack( |
| (...skipping 27 matching lines...) Expand all Loading... |
| 254 const MediaStreamVideoSource::ConstraintsCallback& callback, | 240 const MediaStreamVideoSource::ConstraintsCallback& callback, |
| 255 bool enabled) | 241 bool enabled) |
| 256 : MediaStreamTrack(true), | 242 : MediaStreamTrack(true), |
| 257 frame_deliverer_( | 243 frame_deliverer_( |
| 258 new MediaStreamVideoTrack::FrameDeliverer(source->io_task_runner(), | 244 new MediaStreamVideoTrack::FrameDeliverer(source->io_task_runner(), |
| 259 enabled)), | 245 enabled)), |
| 260 adapter_settings_(base::MakeUnique<VideoTrackAdapterSettings>( | 246 adapter_settings_(base::MakeUnique<VideoTrackAdapterSettings>( |
| 261 VideoTrackAdapterSettings())), | 247 VideoTrackAdapterSettings())), |
| 262 is_screencast_(false), | 248 is_screencast_(false), |
| 263 source_(source->GetWeakPtr()) { | 249 source_(source->GetWeakPtr()) { |
| 264 if (IsOldVideoConstraints()) { | 250 source->AddTrack( |
| 265 blink::WebMediaConstraints constraints; | 251 this, VideoTrackAdapterSettings(), |
| 266 constraints.Initialize(); | 252 base::Bind(&MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, |
| 267 source->AddTrackLegacy( | 253 frame_deliverer_), |
| 268 this, | 254 callback); |
| 269 base::Bind(&MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, | |
| 270 frame_deliverer_), | |
| 271 constraints, callback); | |
| 272 } else { | |
| 273 source->AddTrack( | |
| 274 this, VideoTrackAdapterSettings(), | |
| 275 base::Bind(&MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, | |
| 276 frame_deliverer_), | |
| 277 callback); | |
| 278 } | |
| 279 } | 255 } |
| 280 | 256 |
| 281 MediaStreamVideoTrack::MediaStreamVideoTrack( | 257 MediaStreamVideoTrack::MediaStreamVideoTrack( |
| 282 MediaStreamVideoSource* source, | |
| 283 const blink::WebMediaConstraints& constraints, | |
| 284 const MediaStreamVideoSource::ConstraintsCallback& callback, | |
| 285 bool enabled) | |
| 286 : MediaStreamTrack(true), | |
| 287 frame_deliverer_( | |
| 288 new MediaStreamVideoTrack::FrameDeliverer(source->io_task_runner(), | |
| 289 enabled)), | |
| 290 constraints_(constraints), | |
| 291 source_(source->GetWeakPtr()) { | |
| 292 DCHECK(IsOldVideoConstraints()); | |
| 293 DCHECK(!constraints.IsNull()); | |
| 294 source->AddTrackLegacy( | |
| 295 this, | |
| 296 base::Bind(&MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, | |
| 297 frame_deliverer_), | |
| 298 constraints, callback); | |
| 299 } | |
| 300 | |
| 301 MediaStreamVideoTrack::MediaStreamVideoTrack( | |
| 302 MediaStreamVideoSource* source, | 258 MediaStreamVideoSource* source, |
| 303 const VideoTrackAdapterSettings& adapter_settings, | 259 const VideoTrackAdapterSettings& adapter_settings, |
| 304 const base::Optional<bool>& noise_reduction, | 260 const base::Optional<bool>& noise_reduction, |
| 305 bool is_screen_cast, | 261 bool is_screen_cast, |
| 306 const base::Optional<double>& min_frame_rate, | 262 const base::Optional<double>& min_frame_rate, |
| 307 const MediaStreamVideoSource::ConstraintsCallback& callback, | 263 const MediaStreamVideoSource::ConstraintsCallback& callback, |
| 308 bool enabled) | 264 bool enabled) |
| 309 : MediaStreamTrack(true), | 265 : MediaStreamTrack(true), |
| 310 frame_deliverer_( | 266 frame_deliverer_( |
| 311 new MediaStreamVideoTrack::FrameDeliverer(source->io_task_runner(), | 267 new MediaStreamVideoTrack::FrameDeliverer(source->io_task_runner(), |
| 312 enabled)), | 268 enabled)), |
| 313 adapter_settings_( | 269 adapter_settings_( |
| 314 base::MakeUnique<VideoTrackAdapterSettings>(adapter_settings)), | 270 base::MakeUnique<VideoTrackAdapterSettings>(adapter_settings)), |
| 315 noise_reduction_(noise_reduction), | 271 noise_reduction_(noise_reduction), |
| 316 is_screencast_(is_screen_cast), | 272 is_screencast_(is_screen_cast), |
| 317 min_frame_rate_(min_frame_rate), | 273 min_frame_rate_(min_frame_rate), |
| 318 source_(source->GetWeakPtr()) { | 274 source_(source->GetWeakPtr()) { |
| 319 DCHECK(!IsOldVideoConstraints()); | |
| 320 source->AddTrack( | 275 source->AddTrack( |
| 321 this, adapter_settings, | 276 this, adapter_settings, |
| 322 base::Bind(&MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, | 277 base::Bind(&MediaStreamVideoTrack::FrameDeliverer::DeliverFrameOnIO, |
| 323 frame_deliverer_), | 278 frame_deliverer_), |
| 324 callback); | 279 callback); |
| 325 } | 280 } |
| 326 | 281 |
| 327 MediaStreamVideoTrack::~MediaStreamVideoTrack() { | 282 MediaStreamVideoTrack::~MediaStreamVideoTrack() { |
| 328 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 283 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
| 329 DCHECK(sinks_.empty()); | 284 DCHECK(sinks_.empty()); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 } | 392 } |
| 438 | 393 |
| 439 void MediaStreamVideoTrack::OnReadyStateChanged( | 394 void MediaStreamVideoTrack::OnReadyStateChanged( |
| 440 blink::WebMediaStreamSource::ReadyState state) { | 395 blink::WebMediaStreamSource::ReadyState state) { |
| 441 DCHECK(main_render_thread_checker_.CalledOnValidThread()); | 396 DCHECK(main_render_thread_checker_.CalledOnValidThread()); |
| 442 for (auto* sink : sinks_) | 397 for (auto* sink : sinks_) |
| 443 sink->OnReadyStateChanged(state); | 398 sink->OnReadyStateChanged(state); |
| 444 } | 399 } |
| 445 | 400 |
| 446 } // namespace content | 401 } // namespace content |
| OLD | NEW |