]> git.sesse.net Git - vlc/commitdiff
audio output must be reset if the format or channels mask changes
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 6 Mar 2012 20:02:42 +0000 (22:02 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 6 Mar 2012 20:02:42 +0000 (22:02 +0200)
The check would only reset the output if the sample rate or the
bandwidth changed. For example a switch from 16-bits stereo to
32-bits mono would be undetected. Fortunately, this probably never
happened in practice.

src/input/decoder.c

index 7d2aa2b71f34e9f6095a893805a2a7cd123a9af3..52b37bd629f3ae2248ba25bd7b9ee360d88bdc4a 100644 (file)
@@ -2191,12 +2191,8 @@ static aout_buffer_t *aout_new_buffer( decoder_t *p_dec, int i_samples )
     decoder_owner_sys_t *p_owner = p_dec->p_owner;
     aout_buffer_t *p_buffer;
 
-    if( p_owner->p_aout &&
-        ( p_dec->fmt_out.audio.i_rate != p_owner->audio.i_rate ||
-          p_dec->fmt_out.audio.i_original_channels !=
-              p_owner->audio.i_original_channels ||
-          p_dec->fmt_out.audio.i_bytes_per_frame !=
-              p_owner->audio.i_bytes_per_frame ) )
+    if( p_owner->p_aout
+     && !AOUT_FMTS_IDENTICAL(&p_dec->fmt_out.audio, &p_owner->audio) )
     {
         audio_output_t *p_aout = p_owner->p_aout;