Implement proper timestamping for references

Reference frames are now identified using their timestamp:
set the timestamp when queuing the output buffer and use it to identify
the frame later on.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
This commit is contained in:
Paul Kocialkowski
2019-03-07 11:37:53 +01:00
parent 3176adf69c
commit 0c611c6b7a
7 changed files with 33 additions and 21 deletions
+5 -2
View File
@@ -186,12 +186,15 @@ static void h264_fill_dpb(struct request_data *data,
struct h264_dpb_entry *entry = &context->dpb.entries[i];
struct object_surface *surface =
SURFACE(data, entry->pic.picture_id);
uint64_t timestamp;
if (!entry->valid)
continue;
if (surface)
dpb->buf_index = surface->destination_index;
if (surface) {
timestamp = v4l2_timeval_to_ns(&surface->timestamp);
dpb->timestamp = timestamp;
}
dpb->frame_num = entry->pic.frame_idx;
dpb->top_field_order_cnt = entry->pic.TopFieldOrderCnt;