]> git.sesse.net Git - vlc/blobdiff - src/audio_output/input.c
* input: warning fix (int ->byte_t*).
[vlc] / src / audio_output / input.c
index fb530b505770ed06ca41a091cf200d5db0cc3acc..53d475437bde9ba0ef65093b5b6ba503feb47800 100644 (file)
@@ -308,9 +308,21 @@ int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
 
     if( p_input->b_restart )
     {
+        aout_fifo_t fifo, dummy_fifo;
+        byte_t      *p_first_byte_to_mix;
+
         vlc_mutex_lock( &p_aout->mixer_lock );
+
+        /* A little trick to avoid loosing our input fifo */
+        aout_FifoInit( p_aout, &dummy_fifo, p_aout->mixer.mixer.i_rate );
+        p_first_byte_to_mix = p_input->p_first_byte_to_mix;
+        fifo = p_input->fifo;
+        p_input->fifo = dummy_fifo;
         aout_InputDelete( p_aout, p_input );
         aout_InputNew( p_aout, p_input );
+        p_input->p_first_byte_to_mix = p_first_byte_to_mix;
+        p_input->fifo = fifo;
+
         vlc_mutex_unlock( &p_aout->mixer_lock );
     }