Skip to content

Commit

Permalink
V4L/DVB (9809): uvcvideo: Add nodrop module parameter to turn incompl…
Browse files Browse the repository at this point in the history
…ete frame drop off.

The driver drops incomplete uncompressed video frames to avoid confusing
userspace with corrupt data. Add a nodrop module parameter to turn that
behaviour off and make all frames available to userspace.

Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Laurent Pinchart authored and Mauro Carvalho Chehab committed Dec 30, 2008
1 parent af009cf commit 0fbd8ee
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 1 deletion.
3 changes: 3 additions & 0 deletions drivers/media/video/uvc/uvc_driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
#define DRIVER_VERSION "v0.1.0"
#endif

unsigned int uvc_no_drop_param;
static unsigned int uvc_quirks_param;
unsigned int uvc_trace_param;

Expand Down Expand Up @@ -1939,6 +1940,8 @@ static void __exit uvc_cleanup(void)
module_init(uvc_init);
module_exit(uvc_cleanup);

module_param_named(nodrop, uvc_no_drop_param, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(nodrop, "Don't drop incomplete frames");
module_param_named(quirks, uvc_quirks_param, uint, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(quirks, "Forced device quirks");
module_param_named(trace, uvc_trace_param, uint, S_IRUGO|S_IWUSR);
Expand Down
3 changes: 2 additions & 1 deletion drivers/media/video/uvc/uvc_video.c
Original file line number Diff line number Diff line change
Expand Up @@ -1003,7 +1003,8 @@ int uvc_video_enable(struct uvc_video_device *video, int enable)
return 0;
}

if (video->streaming->cur_format->flags & UVC_FMT_FLAG_COMPRESSED)
if ((video->streaming->cur_format->flags & UVC_FMT_FLAG_COMPRESSED) ||
uvc_no_drop_param)
video->queue.flags &= ~UVC_QUEUE_DROP_INCOMPLETE;
else
video->queue.flags |= UVC_QUEUE_DROP_INCOMPLETE;
Expand Down
1 change: 1 addition & 0 deletions drivers/media/video/uvc/uvcvideo.h
Original file line number Diff line number Diff line change
Expand Up @@ -683,6 +683,7 @@ struct uvc_driver {
#define UVC_WARN_MINMAX 0
#define UVC_WARN_PROBE_DEF 1

extern unsigned int uvc_no_drop_param;
extern unsigned int uvc_trace_param;

#define uvc_trace(flag, msg...) \
Expand Down

0 comments on commit 0fbd8ee

Please sign in to comment.