Chromium Code Reviews| Index: media/gpu/v4l2_video_encode_accelerator.cc |
| diff --git a/media/gpu/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2_video_encode_accelerator.cc |
| index 202a502038d3bd514ca2aa5f015c927484c42e1f..6a269457d618ee8a2819ce0c91c109cc79b6eb88 100644 |
| --- a/media/gpu/v4l2_video_encode_accelerator.cc |
| +++ b/media/gpu/v4l2_video_encode_accelerator.cc |
| @@ -664,7 +664,9 @@ void V4L2VideoEncodeAccelerator::Dequeue() { |
| child_task_runner_->PostTask( |
| FROM_HERE, |
| base::Bind(&Client::BitstreamBufferReady, client_, |
| - output_record.buffer_ref->id, output_size, key_frame)); |
| + output_record.buffer_ref->id, output_size, key_frame, |
| + base::TimeDelta::FromMicroseconds( |
| + static_cast<int64_t>(dqbuf.timestamp.tv_usec)))); |
|
Pawel Osciak
2016/05/23 07:15:53
Do we need the cast? Also, we need both tv_sec and
shenghao
2016/05/24 10:50:19
Removed the cast. I think we only need the usec to
Pawel Osciak
2016/05/26 07:39:23
We need both, usec only stores < 1s part of the va
shenghao
2016/05/26 10:38:20
Done.
|
| output_record.at_device = false; |
| output_record.buffer_ref.reset(); |
| free_output_buffers_.push_back(dqbuf.index); |
| @@ -689,6 +691,11 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord() { |
| qbuf.index = index; |
| qbuf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; |
| qbuf.m.planes = qbuf_planes; |
| + struct timeval timestamp; |
| + timestamp.tv_sec = static_cast<time_t>(frame->timestamp().InSeconds()); |
| + timestamp.tv_usec = |
|
Pawel Osciak
2016/05/23 07:15:52
I'm wondering if we need the casts?
shenghao
2016/05/24 10:50:19
Done.
|
| + static_cast<suseconds_t>(frame->timestamp().InMicroseconds()); |
| + qbuf.timestamp = timestamp; |
|
Pawel Osciak
2016/05/23 07:15:52
Do we need the temporary timestamp, could we just
shenghao
2016/05/24 10:50:19
Done.
|
| DCHECK_EQ(device_input_format_, frame->format()); |
| for (size_t i = 0; i < input_planes_count_; ++i) { |