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

Unified Diff: content/renderer/media/canvas_capture_handler.cc

Issue 1829193003: Request frame for new sinks from MediaStreamVideoTrack (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: miu@ nit. 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/canvas_capture_handler.cc
diff --git a/content/renderer/media/canvas_capture_handler.cc b/content/renderer/media/canvas_capture_handler.cc
index e0d6089ed167b3c84822a76c70c7225e9e9824d9..0220238cfc572f588e51f3a6d0f19d261d4d0037 100644
--- a/content/renderer/media/canvas_capture_handler.cc
+++ b/content/renderer/media/canvas_capture_handler.cc
@@ -85,6 +85,10 @@ class VideoCapturerSource : public media::VideoCapturerSource {
canvas_handler_->StartVideoCapture(params, frame_callback,
running_callback);
}
+ void RequestRefreshFrame() override {
+ DCHECK(main_render_thread_checker_.CalledOnValidThread());
+ canvas_handler_->RequestRefreshFrame();
+ }
void StopCapture() override {
DCHECK(main_render_thread_checker_.CalledOnValidThread());
if (canvas_handler_.get())
@@ -194,6 +198,19 @@ void CanvasCaptureHandler::StartVideoCapture(
running_callback.Run(true);
}
+void CanvasCaptureHandler::RequestRefreshFrame() {
+ DVLOG(3) << __FUNCTION__;
+ DCHECK(main_render_thread_checker_.CalledOnValidThread());
+ if (last_frame_ && delegate_) {
+ io_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&CanvasCaptureHandler::CanvasCaptureHandlerDelegate::
+ SendNewFrameOnIOThread,
+ delegate_->GetWeakPtrForIOThread(), last_frame_,
+ base::TimeTicks::Now()));
+ }
+}
+
void CanvasCaptureHandler::StopVideoCapture() {
DVLOG(3) << __FUNCTION__;
DCHECK(main_render_thread_checker_.CalledOnValidThread());
@@ -202,6 +219,7 @@ void CanvasCaptureHandler::StopVideoCapture() {
}
void CanvasCaptureHandler::CreateNewFrame(const SkImage* image) {
+ DVLOG(4) << __FUNCTION__;
DCHECK(main_render_thread_checker_.CalledOnValidThread());
DCHECK(image);
@@ -243,6 +261,7 @@ void CanvasCaptureHandler::CreateNewFrame(const SkImage* image) {
CopyAlphaChannelIntoVideoFrame(temp_data_.data(), video_frame);
}
+ last_frame_ = video_frame;
io_task_runner_->PostTask(
FROM_HERE,
base::Bind(&CanvasCaptureHandler::CanvasCaptureHandlerDelegate::
« no previous file with comments | « content/renderer/media/canvas_capture_handler.h ('k') | content/renderer/media/media_stream_video_capturer_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698