media: vivid: Fix V4L2_FIELD_ALTERNATE new frame check
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 20 Jul 2018 14:09:16 +0000 (10:09 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 27 Jul 2018 11:51:09 +0000 (07:51 -0400)
The vivid driver will overlay stream time on generated frames. Though,
in interlacing mode V4L2_FIELD_ALTERNATE, each field is separate and
must have the same time to ensure proper render. Though, this time was
only updated every 2 frames as the code was checking against the wrong
counter (frame counter rather then field counter).

Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/vivid/vivid-kthread-cap.c

index 3fdb280..f06003b 100644 (file)
@@ -477,7 +477,7 @@ static void vivid_fillbuff(struct vivid_dev *dev, struct vivid_buffer *buf)
 
        /* Updates stream time, only update at the start of a new frame. */
        if (dev->field_cap != V4L2_FIELD_ALTERNATE ||
-                       (buf->vb.sequence & 1) == 0)
+                       (dev->vid_cap_seq_count & 1) == 0)
                dev->ms_vid_cap =
                        jiffies_to_msecs(jiffies - dev->jiffies_vid_cap);