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

Unified Diff: media/blink/video_frame_compositor.cc

Issue 2159323002: Add tracing AutoOpenCloseEvent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix formatting Created 4 years, 2 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: 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
« media/blink/video_frame_compositor.h ('K') | « media/blink/video_frame_compositor.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698