Index: media/filters/omx_video_decode_engine.cc |
diff --git a/media/filters/omx_video_decode_engine.cc b/media/filters/omx_video_decode_engine.cc |
index 5af29e652bdf97954c0cdfa54485d9339f6923ec..7f64a505fcb9b53cd436a539aced837b5f6733f1 100644 |
--- a/media/filters/omx_video_decode_engine.cc |
+++ b/media/filters/omx_video_decode_engine.cc |
@@ -224,6 +224,10 @@ void OmxVideoDecodeEngine::OnReadComplete(OMX_BUFFERHEADERTYPE* buffer) { |
buffer->pBuffer + pixels + pixels /4, |
pixels / 4); |
+ frame->SetTimestamp(base::TimeDelta::FromMilliseconds(buffer->nTimeStamp)); |
+ frame->SetDuration(frame->GetTimestamp() - last_pts_); |
+ last_pts_ = frame->GetTimestamp(); |
+ |
wjia(left Chromium)
2010/06/02 21:44:38
The boundary condition is not clear. The duration
|
fill_this_buffer_callback_->Run(frame); |
} |
@@ -633,6 +637,7 @@ void OmxVideoDecodeEngine::OnPortEnableEventRun(int port) { |
DCHECK_EQ(port, output_port_); |
output_port_state_ = kPortEnabled; |
+ last_pts_ = base::TimeDelta::FromMilliseconds(0); |
OnPortEnableEventFunc = NULL; |
InitialFillBuffer(); |
if (kClientError == client_state_) { |