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

Side by Side Diff: content/renderer/media/video_track_recorder.cc

Issue 1849003002: Add video frame refresh to MediaStream and VideoCapture stacks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed nick's PS3 comments (moving non-observer impl out of MSVideoSink interface). Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/video_track_recorder.h" 5 #include "content/renderer/media/video_track_recorder.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 const OnEncodedVideoCB& on_encoded_video_callback, 387 const OnEncodedVideoCB& on_encoded_video_callback,
388 int32_t bits_per_second) 388 int32_t bits_per_second)
389 : track_(track), 389 : track_(track),
390 encoder_( 390 encoder_(
391 new VpxEncoder(use_vp9, on_encoded_video_callback, bits_per_second)) { 391 new VpxEncoder(use_vp9, on_encoded_video_callback, bits_per_second)) {
392 DCHECK(main_render_thread_checker_.CalledOnValidThread()); 392 DCHECK(main_render_thread_checker_.CalledOnValidThread());
393 DCHECK(!track_.isNull()); 393 DCHECK(!track_.isNull());
394 DCHECK(track_.getExtraData()); 394 DCHECK(track_.getExtraData());
395 395
396 // StartFrameEncode() will be called on Render IO thread. 396 // StartFrameEncode() will be called on Render IO thread.
397 AddToVideoTrack(this, 397 MediaStreamVideoSink::ConnectToTrack(
398 base::Bind(&VideoTrackRecorder::VpxEncoder::StartFrameEncode, 398 track_,
399 encoder_), 399 base::Bind(&VideoTrackRecorder::VpxEncoder::StartFrameEncode, encoder_));
400 track_);
401 } 400 }
402 401
403 VideoTrackRecorder::~VideoTrackRecorder() { 402 VideoTrackRecorder::~VideoTrackRecorder() {
404 DCHECK(main_render_thread_checker_.CalledOnValidThread()); 403 DCHECK(main_render_thread_checker_.CalledOnValidThread());
405 RemoveFromVideoTrack(this, track_); 404 MediaStreamVideoSink::DisconnectFromTrack();
406 track_.reset(); 405 track_.reset();
407 } 406 }
408 407
409 void VideoTrackRecorder::Pause() { 408 void VideoTrackRecorder::Pause() {
410 DCHECK(main_render_thread_checker_.CalledOnValidThread()); 409 DCHECK(main_render_thread_checker_.CalledOnValidThread());
411 DCHECK(encoder_); 410 DCHECK(encoder_);
412 encoder_->set_paused(true); 411 encoder_->set_paused(true);
413 } 412 }
414 413
415 void VideoTrackRecorder::Resume() { 414 void VideoTrackRecorder::Resume() {
416 DCHECK(main_render_thread_checker_.CalledOnValidThread()); 415 DCHECK(main_render_thread_checker_.CalledOnValidThread());
417 DCHECK(encoder_); 416 DCHECK(encoder_);
418 encoder_->set_paused(false); 417 encoder_->set_paused(false);
419 } 418 }
420 419
421 void VideoTrackRecorder::OnVideoFrameForTesting( 420 void VideoTrackRecorder::OnVideoFrameForTesting(
422 const scoped_refptr<media::VideoFrame>& frame, 421 const scoped_refptr<media::VideoFrame>& frame,
423 base::TimeTicks timestamp) { 422 base::TimeTicks timestamp) {
424 encoder_->StartFrameEncode(frame, timestamp); 423 encoder_->StartFrameEncode(frame, timestamp);
425 } 424 }
426 425
427 } // namespace content 426 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/video_capture_impl_manager.cc ('k') | content/renderer/media/video_track_to_pepper_adapter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698