From dc6c106f0c5eb310a4b98205f7b385d111cd574a Mon Sep 17 00:00:00 2001 From: Richard Hosking <hovis@videolan.org> Date: Sun, 2 Dec 2007 12:53:35 +0000 Subject: [PATCH] v4l2: Fixed dynamic video metric updates. Better handling of defaults. --- modules/access/v4l2.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/modules/access/v4l2.c b/modules/access/v4l2.c index 48452ba3da43..999404045f2a 100644 --- a/modules/access/v4l2.c +++ b/modules/access/v4l2.c @@ -2375,12 +2375,15 @@ static int VideoControl( demux_t *p_demux, int i_fd, struct v4l2_control control; memset( &queryctrl, 0, sizeof( queryctrl ) ); + if( i_value == -1 ) + return VLC_SUCCESS; + queryctrl.id = i_cid; if( ioctl( i_fd, VIDIOC_QUERYCTRL, &queryctrl ) < 0 || queryctrl.flags & V4L2_CTRL_FLAG_DISABLED ) { - msg_Warn( p_demux, "%s (%x) control is not supported.", psz_label, + msg_Err( p_demux, "%s (%x) control is not supported.", psz_label, i_value ); return VLC_EGENERIC; } @@ -2420,31 +2423,30 @@ static int VideoControlCallback( vlc_object_t *p_this, if( i_fd < 0 ) return VLC_EGENERIC; - if( !strcmp( psz_var, "brightness" ) ) + if( !strcmp( psz_var, "v4l2-brightness" ) ) { p_sys->i_brightness = newval.i_int; return VideoControl( p_demux, i_fd, "brightness", V4L2_CID_BRIGHTNESS, p_sys->i_brightness ); } - else if( !strcmp( psz_var, "contrast" ) ) + else if( !strcmp( psz_var, "v4l2-contrast" ) ) { p_sys->i_contrast = newval.i_int; return VideoControl( p_demux, i_fd, "contrast", V4L2_CID_CONTRAST, p_sys->i_contrast ); } - else if( !strcmp( psz_var, "saturation" ) ) + else if( !strcmp( psz_var, "v4l2-saturation" ) ) { p_sys->i_saturation = newval.i_int; return VideoControl( p_demux, i_fd, "saturation", V4L2_CID_SATURATION, p_sys->i_saturation ); } - else if( !strcmp( psz_var, "hue" ) ) + else if( !strcmp( psz_var, "v4l2-hue" ) ) { p_sys->i_hue = newval.i_int; return VideoControl( p_demux, i_fd, "hue", V4L2_CID_HUE, p_sys->i_hue ); } - else - return VLC_EGENERIC; - return VLC_SUCCESS; + + return VLC_EGENERIC; } -- GitLab