Re: [PATCH v1] [media] uvcvideo: mark buffer error where overflow

From: Laurent Pinchart
Date: Mon Oct 16 2017 - 10:41:47 EST


Hi Baoyou,

Thank you for the patch.

On Thursday, 7 September 2017 05:59:48 EEST Baoyou Xie wrote:
> Some cameras post inaccurate frame where next frame data overlap
> it. this results in screen flicker, and it need to be prevented.
>
> So this patch marks the buffer error to discard the frame where
> buffer overflow.

I've thought about this before and I wasn't sure how to handle this case. As
such an overflow might not signal an erroneous buffer, as the buffer could
contain a valid image. However, if you have seen erroneous buffer contents in
this case, and given that overflows should not occur, I think we could decide
to stay on the safe side and set the error flag.

> Signed-off-by: Baoyou Xie <baoyou.xie@xxxxxxxxxx>

Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

I'll apply the patch to my tree.

> ---
> drivers/media/usb/uvc/uvc_video.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/media/usb/uvc/uvc_video.c
> b/drivers/media/usb/uvc/uvc_video.c index fb86d6a..81a3530 100644
> --- a/drivers/media/usb/uvc/uvc_video.c
> +++ b/drivers/media/usb/uvc/uvc_video.c
> @@ -1077,6 +1077,7 @@ static void uvc_video_decode_data(struct uvc_streaming
> *stream, /* Complete the current frame if the buffer size was exceeded. */
> if (len > maxlen) {
> uvc_trace(UVC_TRACE_FRAME, "Frame complete (overflow).\n");
> + buf->error = 1;
> buf->state = UVC_BUF_STATE_READY;
> }
> }


--
Regards,

Laurent Pinchart