summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2011-12-24 10:54:20 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-01-05 10:34:24 +0100
commitbd409364092fe7c79b08d392a0ac756885ee81ab (patch)
treed6794dd376cf7e864ec85d01f6cc448d1dbe2f32
parent9e930a1adec91f365f879e99010f90d52c04ac9e (diff)
audioringbuffer: Use new function to get a channel reordering map
-rw-r--r--gst-libs/gst/audio/gstaudioringbuffer.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/gst-libs/gst/audio/gstaudioringbuffer.c b/gst-libs/gst/audio/gstaudioringbuffer.c
index bb433add1..54fc5e44e 100644
--- a/gst-libs/gst/audio/gstaudioringbuffer.c
+++ b/gst-libs/gst/audio/gstaudioringbuffer.c
@@ -1883,7 +1883,7 @@ gst_audio_ring_buffer_set_channel_positions (GstAudioRingBuffer * buf,
{
const GstAudioChannelPosition *to;
gint channels;
- gint i, j;
+ gint i;
g_return_if_fail (GST_IS_AUDIO_RING_BUFFER (buf));
g_return_if_fail (buf->acquired);
@@ -1895,25 +1895,9 @@ gst_audio_ring_buffer_set_channel_positions (GstAudioRingBuffer * buf,
if (memcmp (position, to, channels * sizeof (to[0])) == 0)
return;
- /* Build reorder map and check compatibility */
- for (i = 0; i < channels; i++) {
- g_return_if_fail (position[i] == GST_AUDIO_CHANNEL_POSITION_NONE
- || to[i] == GST_AUDIO_CHANNEL_POSITION_NONE);
- g_return_if_fail (position[i] == GST_AUDIO_CHANNEL_POSITION_INVALID
- || to[i] == GST_AUDIO_CHANNEL_POSITION_INVALID);
- g_return_if_fail (position[i] == GST_AUDIO_CHANNEL_POSITION_MONO
- || to[i] == GST_AUDIO_CHANNEL_POSITION_MONO);
-
- for (j = 0; j < channels; j++) {
- if (position[i] == to[j]) {
- buf->channel_reorder_map[i] = j;
- break;
- }
- }
-
- /* Not all channels present in both */
- g_return_if_fail (j == channels);
- }
+ if (!gst_audio_get_channel_reorder_map (channels, position, to,
+ buf->channel_reorder_map))
+ g_return_if_reached ();
for (i = 0; i < channels; i++) {
if (buf->channel_reorder_map[i] != i) {