]> git.sesse.net Git - vlc/blobdiff - modules/demux/mod.c
Qt: use a QStackedWidget for the artContainer in the playlist
[vlc] / modules / demux / mod.c
index 37deaa496a059b230b99705121868e255dc6d837..a62c33158c2a4d74b199572e24e779cd531ce21b 100644 (file)
@@ -75,28 +75,28 @@ vlc_module_begin ()
     set_category( CAT_INPUT )
     set_subcategory( SUBCAT_INPUT_DEMUX )
 
-    add_bool( "mod-noisereduction", true, NULL, N_("Noise reduction"),
+    add_bool( "mod-noisereduction", true, N_("Noise reduction"),
               NOISE_LONGTEXT, false )
 
-    add_bool( "mod-reverb", false, NULL, N_("Reverb"),
+    add_bool( "mod-reverb", false, N_("Reverb"),
               REVERB_LONGTEXT, false )
-    add_integer_with_range( "mod-reverb-level", 0, 0, 100, NULL,
+    add_integer_with_range( "mod-reverb-level", 0, 0, 100,
              N_("Reverberation level"), REVERB_LEVEL_LONGTEXT, true )
-    add_integer_with_range( "mod-reverb-delay", 40, 0, 1000, NULL,
+    add_integer_with_range( "mod-reverb-delay", 40, 0, 1000,
              N_("Reverberation delay"), REVERB_DELAY_LONGTEXT, true )
 
-    add_bool( "mod-megabass", false, NULL, N_("Mega bass"),
+    add_bool( "mod-megabass", false, N_("Mega bass"),
                     MEGABASS_LONGTEXT, false )
-    add_integer_with_range( "mod-megabass-level", 0, 0, 100, NULL,
+    add_integer_with_range( "mod-megabass-level", 0, 0, 100,
               N_("Mega bass level"), MEGABASS_LEVEL_LONGTEXT, true )
-    add_integer_with_range( "mod-megabass-range", 10, 10, 100, NULL,
+    add_integer_with_range( "mod-megabass-range", 10, 10, 100,
               N_("Mega bass cutoff"), MEGABASS_RANGE_LONGTEXT, true )
 
-    add_bool( "mod-surround", false, NULL, N_("Surround"), N_("Surround"),
+    add_bool( "mod-surround", false, N_("Surround"), N_("Surround"),
                false )
-    add_integer_with_range( "mod-surround-level", 0, 0, 100, NULL,
+    add_integer_with_range( "mod-surround-level", 0, 0, 100,
               N_("Surround level"), SURROUND_LEVEL_LONGTEXT, true )
-    add_integer_with_range( "mod-surround-delay", 5, 0, 1000, NULL,
+    add_integer_with_range( "mod-surround-delay", 5, 0, 1000,
               N_("Surround delay (ms)"), SURROUND_DELAY_LONGTEXT, true )
 
     set_callbacks( Open, Close )
@@ -106,6 +106,7 @@ vlc_module_end ()
 /*****************************************************************************
  * Local prototypes
  *****************************************************************************/
+static vlc_mutex_t libmodplug_lock = VLC_STATIC_MUTEX;
 
 struct demux_sys_t
 {
@@ -149,7 +150,9 @@ static int Open( vlc_object_t *p_this )
     /* We accept file based on extension match */
     if( !p_demux->b_force )
     {
-        const char *psz_ext = strrchr( p_demux->psz_path, '.' );
+        if( !p_demux->psz_file )
+            return VLC_EGENERIC;
+        const char *psz_ext = strrchr( p_demux->psz_file, '.' );
         int i;
 
         if( !psz_ext )
@@ -196,6 +199,7 @@ static int Open( vlc_object_t *p_this )
     }
 
     /* Configure modplug before loading the file */
+    vlc_mutex_lock( &libmodplug_lock );
     ModPlug_GetSettings( &settings );
     settings.mFlags = MODPLUG_ENABLE_OVERSAMPLING;
     settings.mChannels = 2;
@@ -203,27 +207,30 @@ static int Open( vlc_object_t *p_this )
     settings.mFrequency = 44100;
     settings.mResamplingMode = MODPLUG_RESAMPLE_FIR;
 
-    if( var_CreateGetBool( p_demux, "mod-noisereduction" ) )
+    if( var_InheritBool( p_demux, "mod-noisereduction" ) )
         settings.mFlags |= MODPLUG_ENABLE_NOISE_REDUCTION;
 
-    if( var_CreateGetBool( p_demux, "mod-reverb" ) )
+    if( var_InheritBool( p_demux, "mod-reverb" ) )
         settings.mFlags |= MODPLUG_ENABLE_REVERB;
-    settings.mReverbDepth = var_CreateGetInteger( p_demux, "mod-reverb-level" );
-    settings.mReverbDelay = var_CreateGetInteger( p_demux, "mod-reverb-delay" );
+    settings.mReverbDepth = var_InheritInteger( p_demux, "mod-reverb-level" );
+    settings.mReverbDelay = var_InheritInteger( p_demux, "mod-reverb-delay" );
 
-    if( var_CreateGetBool( p_demux, "mod-megabass" ) )
+    if( var_InheritBool( p_demux, "mod-megabass" ) )
         settings.mFlags |= MODPLUG_ENABLE_MEGABASS;
-    settings.mBassAmount = var_CreateGetInteger( p_demux, "mod-megabass-level" );
-    settings.mBassRange = var_CreateGetInteger( p_demux, "mod-megabass-range" );
+    settings.mBassAmount = var_InheritInteger( p_demux, "mod-megabass-level" );
+    settings.mBassRange = var_InheritInteger( p_demux, "mod-megabass-range" );
 
-    if( var_CreateGetBool( p_demux, "mod-surround" ) )
+    if( var_InheritBool( p_demux, "mod-surround" ) )
         settings.mFlags |= MODPLUG_ENABLE_SURROUND;
-    settings.mSurroundDepth = var_CreateGetInteger( p_demux, "mod-surround-level" );
-    settings.mSurroundDelay = var_CreateGetInteger( p_demux, "mod-surround-delay" );
+    settings.mSurroundDepth = var_InheritInteger( p_demux, "mod-surround-level" );
+    settings.mSurroundDelay = var_InheritInteger( p_demux, "mod-surround-delay" );
 
     ModPlug_SetSettings( &settings );
 
-    if( ( p_sys->f = ModPlug_Load( p_sys->p_data, p_sys->i_data ) ) == NULL )
+    p_sys->f = ModPlug_Load( p_sys->p_data, p_sys->i_data );
+    vlc_mutex_unlock( &libmodplug_lock );
+
+    if( !p_sys->f )
     {
         msg_Err( p_demux, "failed to understand the file" );
         /* we try to seek to recover for other plugin */