audioringbuffer: Don't clear need_reorder flag too early

gst_audio_ring_buffer_set_channel_positions() checks whether the given
positions are identical with the current setup and returns
immediately if so.  But it also clears need_reorder flag before this
comparison, thus this flag might be wrongly cleared if the function is
called twice with the same channel positions.

Move the flag clearance after the check.

https://bugzilla.gnome.org/show_bug.cgi?id=709754
This commit is contained in:
Takashi Iwai 2013-10-08 16:02:46 +02:00 committed by Sebastian Dröge
parent 7dfb903cb4
commit 6d659e3c6f

View file

@ -1950,10 +1950,10 @@ gst_audio_ring_buffer_set_channel_positions (GstAudioRingBuffer * buf,
channels = buf->spec.info.channels;
to = buf->spec.info.position;
buf->need_reorder = FALSE;
if (memcmp (position, to, channels * sizeof (to[0])) == 0)
return;
buf->need_reorder = FALSE;
if (!gst_audio_get_channel_reorder_map (channels, position, to,
buf->channel_reorder_map))
g_return_if_reached ();