From d3a418ed9c886df8e2ed8fa757c0b2d1212dc134 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Thu, 3 Nov 2011 07:24:34 -0300 Subject: [PATCH] --- yaml --- r: 285370 b: refs/heads/master c: 3afedb95858bcc117b207a7c0a6767fe891bdfe9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/video/uvc/uvc_video.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index eccfc983bef7..65cfff92c354 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0c6a3b268e14ab99960028c9ad202b9aebae0a03 +refs/heads/master: 3afedb95858bcc117b207a7c0a6767fe891bdfe9 diff --git a/trunk/drivers/media/video/uvc/uvc_video.c b/trunk/drivers/media/video/uvc/uvc_video.c index b953dae5205d..a57f81341849 100644 --- a/trunk/drivers/media/video/uvc/uvc_video.c +++ b/trunk/drivers/media/video/uvc/uvc_video.c @@ -409,13 +409,6 @@ static int uvc_video_decode_start(struct uvc_streaming *stream, if (len < 2 || data[0] < 2 || data[0] > len) return -EINVAL; - /* Skip payloads marked with the error bit ("error frames"). */ - if (data[1] & UVC_STREAM_ERR) { - uvc_trace(UVC_TRACE_FRAME, "Dropping payload (error bit " - "set).\n"); - return -ENODATA; - } - fid = data[1] & UVC_STREAM_FID; /* Increase the sequence number regardless of any buffer states, so @@ -432,6 +425,13 @@ static int uvc_video_decode_start(struct uvc_streaming *stream, return -ENODATA; } + /* Mark the buffer as bad if the error bit is set. */ + if (data[1] & UVC_STREAM_ERR) { + uvc_trace(UVC_TRACE_FRAME, "Marking buffer as bad (error bit " + "set).\n"); + buf->error = 1; + } + /* Synchronize to the input stream by waiting for the FID bit to be * toggled when the the buffer state is not UVC_BUF_STATE_ACTIVE. * stream->last_fid is initialized to -1, so the first isochronous