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

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

Issue 2472273002: Move passing of WebRTC rendering frames from main thread to compositor thread (Closed)
Patch Set: Make |render_frame_suspended_| android specific. Created 4 years, 1 month 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/webmediaplayer_ms_compositor.cc
diff --git a/content/renderer/media/webmediaplayer_ms_compositor.cc b/content/renderer/media/webmediaplayer_ms_compositor.cc
index 86e1a896411438311abd59784c47512d62d121c0..5067c9346989d8c0580b1b13306b8273d982164a 100644
--- a/content/renderer/media/webmediaplayer_ms_compositor.cc
+++ b/content/renderer/media/webmediaplayer_ms_compositor.cc
@@ -135,7 +135,7 @@ WebMediaPlayerMSCompositor::WebMediaPlayerMSCompositor(
total_frame_count_(0),
dropped_frame_count_(0),
stopped_(true),
- weak_ptr_factory_(this) {
+ weak_factory_for_compositor_(this) {
main_message_loop_ = base::MessageLoop::current();
blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
@@ -204,7 +204,7 @@ void WebMediaPlayerMSCompositor::SetVideoFrameProviderClient(
void WebMediaPlayerMSCompositor::EnqueueFrame(
const scoped_refptr<media::VideoFrame>& frame) {
- DCHECK(thread_checker_.CalledOnValidThread());
+ DCHECK(compositor_task_runner_->BelongsToCurrentThread());
base::AutoLock auto_lock(current_frame_lock_);
++total_frame_count_;
@@ -318,7 +318,7 @@ void WebMediaPlayerMSCompositor::StartRendering() {
DCHECK(thread_checker_.CalledOnValidThread());
compositor_task_runner_->PostTask(
FROM_HERE, base::Bind(&WebMediaPlayerMSCompositor::StartRenderingInternal,
- weak_ptr_factory_.GetWeakPtr()));
+ GetWeakPtr()));
}
void WebMediaPlayerMSCompositor::StartRenderingInternal() {
@@ -333,7 +333,7 @@ void WebMediaPlayerMSCompositor::StopRendering() {
DCHECK(thread_checker_.CalledOnValidThread());
compositor_task_runner_->PostTask(
FROM_HERE, base::Bind(&WebMediaPlayerMSCompositor::StopRenderingInternal,
- weak_ptr_factory_.GetWeakPtr()));
+ GetWeakPtr()));
}
void WebMediaPlayerMSCompositor::StopRenderingInternal() {
@@ -368,6 +368,11 @@ void WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopy() {
CopyFrame(current_frame_, player_->GetSkCanvasVideoRenderer());
}
+base::WeakPtr<WebMediaPlayerMSCompositor>
+WebMediaPlayerMSCompositor::GetWeakPtr() {
+ return weak_factory_for_compositor_.GetWeakPtr();
+}
+
bool WebMediaPlayerMSCompositor::MapTimestampsToRenderTimeTicks(
const std::vector<base::TimeDelta>& timestamps,
std::vector<base::TimeTicks>* wall_clock_times) {

Powered by Google App Engine
This is Rietveld 408576698