Chromium Code Reviews| Index: media/blink/video_frame_compositor.cc |
| diff --git a/media/blink/video_frame_compositor.cc b/media/blink/video_frame_compositor.cc |
| index 544f7098701d481c2358c2493d2f59aae52d5256..0be43ba524944de74acb19dd4a6e0d4772eb662a 100644 |
| --- a/media/blink/video_frame_compositor.cc |
| +++ b/media/blink/video_frame_compositor.cc |
| @@ -7,6 +7,7 @@ |
| #include "base/bind.h" |
| #include "base/message_loop/message_loop.h" |
| #include "base/time/default_tick_clock.h" |
| +#include "base/trace_event/auto_open_close_event.h" |
| #include "base/trace_event/trace_event.h" |
| #include "media/base/video_frame.h" |
| @@ -35,14 +36,21 @@ VideoFrameCompositor::VideoFrameCompositor( |
| new_background_frame_(false), |
| // Assume 60Hz before the first UpdateCurrentFrame() call. |
| last_interval_(base::TimeDelta::FromSecondsD(1.0 / 60)), |
| - callback_(nullptr) { |
| + callback_(nullptr), |
| + auto_open_close_(nullptr) { |
| background_rendering_timer_.SetTaskRunner(compositor_task_runner_); |
| + constructor_task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
| + auto_open_close_ = new base::trace_event::AutoOpenCloseEvent( |
|
Primiano Tucci (use gerrit)
2016/10/12 16:36:50
raw pointers with manual new/delete are discourage
alexandermont
2016/10/13 19:15:53
Changed to unique ptr
|
| + base::trace_event::AutoOpenCloseEvent::Type::ASYNC, "media,rail", |
| + "VideoPlayback"); |
| } |
| VideoFrameCompositor::~VideoFrameCompositor() { |
| DCHECK(compositor_task_runner_->BelongsToCurrentThread()); |
| DCHECK(!callback_); |
| DCHECK(!rendering_); |
| + if (auto_open_close_) |
| + delete auto_open_close_; |
|
benjhayden
2016/10/12 03:05:54
This will only work if VFC is created on the compo
Primiano Tucci (use gerrit)
2016/10/12 16:36:50
this should be just a auto_open_close.reset()
|
| if (client_) |
| client_->StopUsingProvider(); |
| } |
| @@ -105,8 +113,9 @@ bool VideoFrameCompositor::HasCurrentFrame() { |
| } |
| void VideoFrameCompositor::Start(RenderCallback* callback) { |
| - TRACE_EVENT_ASYNC_BEGIN0("media,rail", "VideoPlayback", |
| - static_cast<const void*>(this)); |
| + constructor_task_runner_->PostTask( |
| + FROM_HERE, base::Bind(&base::trace_event::AutoOpenCloseEvent::Begin, |
| + base::Unretained(auto_open_close_))); |
| // Called from the media thread, so acquire the callback under lock before |
| // returning in case a Stop() call comes in before the PostTask is processed. |
| @@ -119,8 +128,9 @@ void VideoFrameCompositor::Start(RenderCallback* callback) { |
| } |
| void VideoFrameCompositor::Stop() { |
| - TRACE_EVENT_ASYNC_END0("media,rail", "VideoPlayback", |
| - static_cast<const void*>(this)); |
| + constructor_task_runner_->PostTask( |
| + FROM_HERE, base::Bind(&base::trace_event::AutoOpenCloseEvent::End, |
| + base::Unretained(auto_open_close_))); |
| // Called from the media thread, so release the callback under lock before |
| // returning to avoid a pending UpdateCurrentFrame() call occurring before |