mirror of
https://github.com/torvalds/linux.git
synced 2024-12-13 14:43:03 +00:00
V4L/DVB (9031): uvcvideo: Fix incomplete frame drop when switching to a variable size format.
When streaming in a fixed size format the driver sets a flag in the uvc_queue structure to drop incomplete incoming frames. The flag wasn't cleared when switching to a variable size format, which resulted in a broken 'MJPEG after YUV'. Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
80845e1078
commit
d63beb9ef0
@ -842,10 +842,6 @@ static int uvc_v4l2_do_ioctl(struct inode *inode, struct file *file,
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (!(video->streaming->cur_format->flags &
|
||||
UVC_FMT_FLAG_COMPRESSED))
|
||||
video->queue.flags |= UVC_QUEUE_DROP_INCOMPLETE;
|
||||
|
||||
rb->count = ret;
|
||||
ret = 0;
|
||||
break;
|
||||
|
@ -971,6 +971,11 @@ int uvc_video_enable(struct uvc_video_device *video, int enable)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (video->streaming->cur_format->flags & UVC_FMT_FLAG_COMPRESSED)
|
||||
video->queue.flags &= ~UVC_QUEUE_DROP_INCOMPLETE;
|
||||
else
|
||||
video->queue.flags |= UVC_QUEUE_DROP_INCOMPLETE;
|
||||
|
||||
if ((ret = uvc_queue_enable(&video->queue, 1)) < 0)
|
||||
return ret;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user