[v3,14/14] v4l: ti-vpe: retain v4l2_buffer flags for captured buffers
Commit Message
The dequed CAPTURE_MPLANE type buffers don't contain the flags that the
originally queued OUTPUT_MPLANE type buffers have. This breaks compliance.
Copy the source v4l2_buffer flags to the destination v4l2_buffer flags before
they are dequed.
Signed-off-by: Archit Taneja <archit@ti.com>
---
drivers/media/platform/ti-vpe/vpe.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
Comments
On 03/11/14 09:33, Archit Taneja wrote:
> The dequed CAPTURE_MPLANE type buffers don't contain the flags that the
> originally queued OUTPUT_MPLANE type buffers have. This breaks compliance.
>
> Copy the source v4l2_buffer flags to the destination v4l2_buffer flags before
> they are dequed.
>
> Signed-off-by: Archit Taneja <archit@ti.com>
Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com>
> ---
> drivers/media/platform/ti-vpe/vpe.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/media/platform/ti-vpe/vpe.c b/drivers/media/platform/ti-vpe/vpe.c
> index c884910..f7759e8 100644
> --- a/drivers/media/platform/ti-vpe/vpe.c
> +++ b/drivers/media/platform/ti-vpe/vpe.c
> @@ -1288,13 +1288,12 @@ static irqreturn_t vpe_irq(int irq_vpe, void *data)
> s_buf = &s_vb->v4l2_buf;
> d_buf = &d_vb->v4l2_buf;
>
> + d_buf->flags = s_buf->flags;
> +
> d_buf->timestamp = s_buf->timestamp;
> - d_buf->flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
> - d_buf->flags |= s_buf->flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
> - if (s_buf->flags & V4L2_BUF_FLAG_TIMECODE) {
> - d_buf->flags |= V4L2_BUF_FLAG_TIMECODE;
> + if (s_buf->flags & V4L2_BUF_FLAG_TIMECODE)
> d_buf->timecode = s_buf->timecode;
> - }
> +
> d_buf->sequence = ctx->sequence;
>
> d_q_data = &ctx->q_data[Q_DATA_DST];
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
@@ -1288,13 +1288,12 @@ static irqreturn_t vpe_irq(int irq_vpe, void *data)
s_buf = &s_vb->v4l2_buf;
d_buf = &d_vb->v4l2_buf;
+ d_buf->flags = s_buf->flags;
+
d_buf->timestamp = s_buf->timestamp;
- d_buf->flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
- d_buf->flags |= s_buf->flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
- if (s_buf->flags & V4L2_BUF_FLAG_TIMECODE) {
- d_buf->flags |= V4L2_BUF_FLAG_TIMECODE;
+ if (s_buf->flags & V4L2_BUF_FLAG_TIMECODE)
d_buf->timecode = s_buf->timecode;
- }
+
d_buf->sequence = ctx->sequence;
d_q_data = &ctx->q_data[Q_DATA_DST];