|
@@ -1422,6 +1422,7 @@ static int coda_queue_init(void *priv, struct vb2_queue *src_vq,
|
|
|
src_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer);
|
|
|
src_vq->ops = &coda_qops;
|
|
|
src_vq->mem_ops = &vb2_dma_contig_memops;
|
|
|
+ src_vq->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY;
|
|
|
|
|
|
ret = vb2_queue_init(src_vq);
|
|
|
if (ret)
|
|
@@ -1433,6 +1434,7 @@ static int coda_queue_init(void *priv, struct vb2_queue *src_vq,
|
|
|
dst_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer);
|
|
|
dst_vq->ops = &coda_qops;
|
|
|
dst_vq->mem_ops = &vb2_dma_contig_memops;
|
|
|
+ dst_vq->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY;
|
|
|
|
|
|
return vb2_queue_init(dst_vq);
|
|
|
}
|
|
@@ -1628,6 +1630,9 @@ static irqreturn_t coda_irq_handler(int irq, void *data)
|
|
|
dst_buf->v4l2_buf.flags &= ~V4L2_BUF_FLAG_KEYFRAME;
|
|
|
}
|
|
|
|
|
|
+ dst_buf->v4l2_buf.timestamp = src_buf->v4l2_buf.timestamp;
|
|
|
+ dst_buf->v4l2_buf.timecode = src_buf->v4l2_buf.timecode;
|
|
|
+
|
|
|
v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_DONE);
|
|
|
v4l2_m2m_buf_done(dst_buf, VB2_BUF_STATE_DONE);
|
|
|
|