Commit 8fe58e36 authored by piman@chromium.org's avatar piman@chromium.org

Adding traces to OmxVideoDecodeAccelerator

BUG=None
TEST=about:tracing with GLES2 on ARM.


Review URL: http://codereview.chromium.org/7587008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96333 0039d316-1c4b-4281-b951-d872f2087c98
parent 6d8e90b8
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "content/common/gpu/media/omx_video_decode_accelerator.h" #include "content/common/gpu/media/omx_video_decode_accelerator.h"
#include "base/debug/trace_event.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/string_util.h" #include "base/string_util.h"
#include "content/common/gpu/gpu_channel.h" #include "content/common/gpu/gpu_channel.h"
...@@ -277,6 +278,8 @@ bool OmxVideoDecodeAccelerator::CreateComponent() { ...@@ -277,6 +278,8 @@ bool OmxVideoDecodeAccelerator::CreateComponent() {
void OmxVideoDecodeAccelerator::Decode( void OmxVideoDecodeAccelerator::Decode(
const media::BitstreamBuffer& bitstream_buffer) { const media::BitstreamBuffer& bitstream_buffer) {
TRACE_EVENT1("Video Decoder", "OVDA::Decode",
"Buffer id", bitstream_buffer.id());
DCHECK_EQ(message_loop_, MessageLoop::current()); DCHECK_EQ(message_loop_, MessageLoop::current());
DCHECK(!free_input_buffers_.empty()); DCHECK(!free_input_buffers_.empty());
...@@ -353,6 +356,8 @@ void OmxVideoDecodeAccelerator::AssignPictureBuffers( ...@@ -353,6 +356,8 @@ void OmxVideoDecodeAccelerator::AssignPictureBuffers(
} }
void OmxVideoDecodeAccelerator::ReusePictureBuffer(int32 picture_buffer_id) { void OmxVideoDecodeAccelerator::ReusePictureBuffer(int32 picture_buffer_id) {
TRACE_EVENT1("Video Decoder", "OVDA::ReusePictureBuffer",
"Picture id", picture_buffer_id);
DCHECK_EQ(message_loop_, MessageLoop::current()); DCHECK_EQ(message_loop_, MessageLoop::current());
RETURN_ON_FAILURE(CanFillBuffer(), "Can't fill buffer", ILLEGAL_STATE,); RETURN_ON_FAILURE(CanFillBuffer(), "Can't fill buffer", ILLEGAL_STATE,);
...@@ -738,6 +743,12 @@ void OmxVideoDecodeAccelerator::OnOutputPortEnabled() { ...@@ -738,6 +743,12 @@ void OmxVideoDecodeAccelerator::OnOutputPortEnabled() {
void OmxVideoDecodeAccelerator::FillBufferDoneTask( void OmxVideoDecodeAccelerator::FillBufferDoneTask(
OMX_BUFFERHEADERTYPE* buffer) { OMX_BUFFERHEADERTYPE* buffer) {
media::Picture* picture =
reinterpret_cast<media::Picture*>(buffer->pAppPrivate);
int picture_buffer_id = picture ? picture->picture_buffer_id() : -1;
TRACE_EVENT2("Video Decoder", "OVDA::FillBufferDoneTask",
"Buffer id", buffer->nTimeStamp,
"Picture id", picture_buffer_id);
DCHECK_EQ(message_loop_, MessageLoop::current()); DCHECK_EQ(message_loop_, MessageLoop::current());
DCHECK_GT(output_buffers_at_component_, 0); DCHECK_GT(output_buffers_at_component_, 0);
--output_buffers_at_component_; --output_buffers_at_component_;
...@@ -757,11 +768,6 @@ void OmxVideoDecodeAccelerator::FillBufferDoneTask( ...@@ -757,11 +768,6 @@ void OmxVideoDecodeAccelerator::FillBufferDoneTask(
saw_eos_during_flush_ = true; saw_eos_during_flush_ = true;
} }
DCHECK(buffer->pAppPrivate);
media::Picture* picture =
reinterpret_cast<media::Picture*>(buffer->pAppPrivate);
int picture_buffer_id = picture->picture_buffer_id();
// During the transition from Executing to Idle, and during port-flushing, all // During the transition from Executing to Idle, and during port-flushing, all
// pictures are sent back through here. Avoid giving them to the client. // pictures are sent back through here. Avoid giving them to the client.
// Also avoid sending the (fake) EOS buffer to the client. // Also avoid sending the (fake) EOS buffer to the client.
...@@ -773,6 +779,7 @@ void OmxVideoDecodeAccelerator::FillBufferDoneTask( ...@@ -773,6 +779,7 @@ void OmxVideoDecodeAccelerator::FillBufferDoneTask(
return; return;
} }
DCHECK(picture);
// See Decode() for an explanation of this abuse of nTimeStamp. // See Decode() for an explanation of this abuse of nTimeStamp.
picture->set_bitstream_buffer_id(buffer->nTimeStamp); picture->set_bitstream_buffer_id(buffer->nTimeStamp);
if (client_) if (client_)
...@@ -781,6 +788,8 @@ void OmxVideoDecodeAccelerator::FillBufferDoneTask( ...@@ -781,6 +788,8 @@ void OmxVideoDecodeAccelerator::FillBufferDoneTask(
void OmxVideoDecodeAccelerator::EmptyBufferDoneTask( void OmxVideoDecodeAccelerator::EmptyBufferDoneTask(
OMX_BUFFERHEADERTYPE* buffer) { OMX_BUFFERHEADERTYPE* buffer) {
TRACE_EVENT1("Video Decoder", "OVDA::EmptyBufferDoneTask",
"Buffer id", buffer->nTimeStamp);
DCHECK_EQ(message_loop_, MessageLoop::current()); DCHECK_EQ(message_loop_, MessageLoop::current());
DCHECK_GT(input_buffers_at_component_, 0); DCHECK_GT(input_buffers_at_component_, 0);
free_input_buffers_.push(buffer); free_input_buffers_.push(buffer);
...@@ -971,6 +980,8 @@ OMX_ERRORTYPE OmxVideoDecodeAccelerator::EmptyBufferCallback( ...@@ -971,6 +980,8 @@ OMX_ERRORTYPE OmxVideoDecodeAccelerator::EmptyBufferCallback(
OMX_HANDLETYPE component, OMX_HANDLETYPE component,
OMX_PTR priv_data, OMX_PTR priv_data,
OMX_BUFFERHEADERTYPE* buffer) { OMX_BUFFERHEADERTYPE* buffer) {
TRACE_EVENT1("Video Decoder", "OVDA::EmptyBufferCallback",
"Buffer id", buffer->nTimeStamp);
// Called on the OMX thread. // Called on the OMX thread.
OmxVideoDecodeAccelerator* decoder = OmxVideoDecodeAccelerator* decoder =
static_cast<OmxVideoDecodeAccelerator*>(priv_data); static_cast<OmxVideoDecodeAccelerator*>(priv_data);
...@@ -988,6 +999,12 @@ OMX_ERRORTYPE OmxVideoDecodeAccelerator::FillBufferCallback( ...@@ -988,6 +999,12 @@ OMX_ERRORTYPE OmxVideoDecodeAccelerator::FillBufferCallback(
OMX_HANDLETYPE component, OMX_HANDLETYPE component,
OMX_PTR priv_data, OMX_PTR priv_data,
OMX_BUFFERHEADERTYPE* buffer) { OMX_BUFFERHEADERTYPE* buffer) {
media::Picture* picture =
reinterpret_cast<media::Picture*>(buffer->pAppPrivate);
int picture_buffer_id = picture ? picture->picture_buffer_id() : -1;
TRACE_EVENT2("Video Decoder", "OVDA::FillBufferCallback",
"Buffer id", buffer->nTimeStamp,
"Picture id", picture_buffer_id);
// Called on the OMX thread. // Called on the OMX thread.
OmxVideoDecodeAccelerator* decoder = OmxVideoDecodeAccelerator* decoder =
static_cast<OmxVideoDecodeAccelerator*>(priv_data); static_cast<OmxVideoDecodeAccelerator*>(priv_data);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment