]> git.sesse.net Git - vlc/blobdiff - src/audio_output/aout_internal.h
Attached aout to its parent in aout_New().
[vlc] / src / audio_output / aout_internal.h
index 6ef8da46cd339d4ee01e0469165abbd0bdaacca1..12878c26027b81aff3d5f94d3bb29219beb3f906 100644 (file)
@@ -108,6 +108,7 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input, const aout_
 int aout_InputDelete( aout_instance_t * p_aout, aout_input_t * p_input );
 int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
                     aout_buffer_t * p_buffer, int i_input_rate );
+void aout_InputCheckAndRestart( aout_instance_t * p_aout, aout_input_t * p_input );
 
 /* From filters.c : */
 int aout_FiltersCreatePipeline ( aout_instance_t * p_aout, filter_t ** pp_filters, int * pi_nb_filters, const audio_sample_format_t * p_input_format, const audio_sample_format_t * p_output_format );
@@ -178,6 +179,7 @@ enum
     INPUT_LOCK=2,
     INPUT_FIFO_LOCK=4,
     OUTPUT_FIFO_LOCK=8,
+    VOLUME_VARS_LOCK=16
 };
 
 void aout_lock (unsigned);
@@ -238,6 +240,17 @@ static inline void aout_unlock_input( aout_instance_t *p_aout, aout_input_t * p_
     vlc_mutex_unlock( &p_input->lock );
 }
 
+static inline void aout_lock_volume( aout_instance_t *p_aout )
+{
+    aout_lock( VOLUME_VARS_LOCK );
+    vlc_mutex_lock( &p_aout->volume_vars_lock );
+}
+
+static inline void aout_unlock_volume( aout_instance_t *p_aout )
+{
+    aout_unlock( VOLUME_VARS_LOCK );
+    vlc_mutex_unlock( &p_aout->volume_vars_lock );
+}
 
 /* Helpers */
 
@@ -269,7 +282,10 @@ static inline bool AoutChangeFilterString( vlc_object_t *p_obj, aout_instance_t
     if( p_aout )
         psz_val = var_GetString( p_aout, psz_variable );
     else
-        psz_val = config_GetPsz( p_obj, "audio-filter" );
+    {
+        psz_val = var_CreateGetString( p_obj->p_libvlc, "audio-filter" );
+        var_Destroy( p_obj->p_libvlc, "audio-filter" );
+    }
 
     if( !psz_val )
         psz_val = strdup( "" );