mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-01 23:01:29 +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)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (!(video->streaming->cur_format->flags &
|
|
||||||
UVC_FMT_FLAG_COMPRESSED))
|
|
||||||
video->queue.flags |= UVC_QUEUE_DROP_INCOMPLETE;
|
|
||||||
|
|
||||||
rb->count = ret;
|
rb->count = ret;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -971,6 +971,11 @@ int uvc_video_enable(struct uvc_video_device *video, int enable)
|
|||||||
return 0;
|
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)
|
if ((ret = uvc_queue_enable(&video->queue, 1)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user