From 246cc300503c6d096c6424ddeba40fdcfb2b8a66 Mon Sep 17 00:00:00 2001 From: memeka Date: Tue, 10 Jul 2018 22:01:38 +0930 Subject: [PATCH] ODROID-XU4: media: s5p-mfc: copy timestamp and timecode in encoder output Change-Id: Ic3a2f6eb94d60604df50976eca4e210898f40b32 Signed-off-by: memeka --- drivers/media/platform/s5p-mfc/s5p_mfc_enc.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c index 912fe0c5ab18..d48e7b57d96a 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c @@ -1208,6 +1208,7 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx) { struct s5p_mfc_dev *dev = ctx->dev; struct s5p_mfc_buf *mb_entry; + struct s5p_mfc_buf *dst_buf; unsigned long enc_y_addr = 0, enc_c_addr = 0; unsigned long mb_y_addr, mb_c_addr; int slice_type; @@ -1227,8 +1228,12 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx) &mb_entry->b->vb2_buf, 0); mb_c_addr = vb2_dma_contig_plane_dma_addr( &mb_entry->b->vb2_buf, 1); + dst_buf = list_entry(ctx->dst_queue.next, + struct s5p_mfc_buf, list); if ((enc_y_addr == mb_y_addr) && (enc_c_addr == mb_c_addr)) { + dst_buf->b->timecode = mb_entry->b->timecode; + dst_buf->b->vb2_buf.timestamp = mb_entry->b->vb2_buf.timestamp; list_del(&mb_entry->list); ctx->src_queue_cnt--; vb2_buffer_done(&mb_entry->b->vb2_buf, @@ -1241,8 +1246,12 @@ static int enc_post_frame_start(struct s5p_mfc_ctx *ctx) &mb_entry->b->vb2_buf, 0); mb_c_addr = vb2_dma_contig_plane_dma_addr( &mb_entry->b->vb2_buf, 1); + dst_buf = list_entry(ctx->dst_queue.next, + struct s5p_mfc_buf, list); if ((enc_y_addr == mb_y_addr) && (enc_c_addr == mb_c_addr)) { + dst_buf->b->timecode = mb_entry->b->timecode; + dst_buf->b->vb2_buf.timestamp = mb_entry->b->vb2_buf.timestamp; list_del(&mb_entry->list); ctx->ref_queue_cnt--; vb2_buffer_done(&mb_entry->b->vb2_buf,