[vlc-devel] [PATCH] V4L2: Allow device to be specified with option.
Thierry Reding
thierry.reding at avionic-design.de
Wed Apr 20 11:44:43 CEST 2011
Currently the V4L2 device to be used can only be set via the media URL.
This patch allows the :v4l2-dev option to set the device as well.
Setting the device via the media URL still takes precedence.
This is useful if a program auto-detects the V4L2 device so that the
media URL only needs to contain e.g. the tuner settings.
---
modules/access/v4l2.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/modules/access/v4l2.c b/modules/access/v4l2.c
index bae9d0d..396d494 100644
--- a/modules/access/v4l2.c
+++ b/modules/access/v4l2.c
@@ -705,6 +705,8 @@ static int DemuxOpen( vlc_object_t *p_this )
*****************************************************************************/
static void GetV4L2Params( demux_sys_t *p_sys, vlc_object_t *p_obj )
{
+ p_sys->psz_device = var_CreateGetNonEmptyString( p_obj, "v4l2-dev" );
+
p_sys->i_selected_standard_id =
i_standards_list[var_CreateGetInteger( p_obj, "v4l2-standard" )];
@@ -743,7 +745,6 @@ static void GetV4L2Params( demux_sys_t *p_sys, vlc_object_t *p_obj )
}
free( psz_aspect );
- p_sys->psz_device = NULL;
p_sys->i_fd = -1;
p_sys->p_es = NULL;
@@ -1001,8 +1002,13 @@ static void ParseMRL( demux_sys_t *p_sys, char *psz_path, vlc_object_t *p_obj )
/* Main device */
if( *psz_dup )
+ {
+ if( p_sys->psz_device )
+ free( p_sys->psz_device );
+
p_sys->psz_device = strdup( psz_dup );
- else
+ }
+ else if( p_sys->psz_device == NULL )
p_sys->psz_device = strdup( V4L2_DEFAULT );
free( psz_dup );
}
--
1.7.4.4
More information about the vlc-devel
mailing list