[vlc-commits] aout_CheckChannelReorder: remove redundant parameter

Rémi Denis-Courmont git at videolan.org
Sun Nov 11 12:17:46 CET 2012


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Nov 11 12:37:57 2012 +0200| [784b1bd3d410ce0ad01ece4ce111e37c5f041f03] | committer: Rémi Denis-Courmont

aout_CheckChannelReorder: remove redundant parameter

The number of channels is conveyed in the channels mask.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=784b1bd3d410ce0ad01ece4ce111e37c5f041f03
---

 include/vlc_aout.h                            |    3 +-
 modules/audio_filter/converter/a52tofloat32.c |    1 -
 modules/audio_filter/converter/dtstofloat32.c |    1 -
 modules/audio_output/directx.c                |    2 +-
 modules/audio_output/waveout.c                |    2 +-
 modules/codec/opus.c                          |    1 -
 modules/codec/vorbis.c                        |    8 ++---
 modules/demux/wav.c                           |    1 -
 modules/mux/wav.c                             |    1 -
 src/audio_output/common.c                     |   47 +++++++++++--------------
 10 files changed, 27 insertions(+), 40 deletions(-)

diff --git a/include/vlc_aout.h b/include/vlc_aout.h
index 9aa5ec7..27d5bb0 100644
--- a/include/vlc_aout.h
+++ b/include/vlc_aout.h
@@ -178,7 +178,8 @@ static const uint32_t pi_vlc_chan_order_wg4[] =
  * If pi_chan_order_in or pi_chan_order_out is NULL, it will assume that vlc
  * internal (WG4) order is requested.
  */
-VLC_API int aout_CheckChannelReorder( const uint32_t *pi_chan_order_in, const uint32_t *pi_chan_order_out, uint32_t i_channel_mask, int i_channels, int *pi_chan_table );
+VLC_API unsigned aout_CheckChannelReorder( const uint32_t *, const uint32_t *,
+                                           uint32_t mask, int *table );
 VLC_API void aout_ChannelReorder( void *, size_t, unsigned, const int *, unsigned );
 
 /**
diff --git a/modules/audio_filter/converter/a52tofloat32.c b/modules/audio_filter/converter/a52tofloat32.c
index 8379e07..9391318 100644
--- a/modules/audio_filter/converter/a52tofloat32.c
+++ b/modules/audio_filter/converter/a52tofloat32.c
@@ -214,7 +214,6 @@ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys,
 
     aout_CheckChannelReorder( pi_channels_in, NULL,
                               output->i_physical_channels,
-                              p_sys->i_nb_channels,
                               p_sys->pi_chan_table );
 
     return VLC_SUCCESS;
diff --git a/modules/audio_filter/converter/dtstofloat32.c b/modules/audio_filter/converter/dtstofloat32.c
index f4b9412..4df5689 100644
--- a/modules/audio_filter/converter/dtstofloat32.c
+++ b/modules/audio_filter/converter/dtstofloat32.c
@@ -176,7 +176,6 @@ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys,
 
     aout_CheckChannelReorder( pi_channels_in, NULL,
                               output->i_physical_channels,
-                              p_sys->i_nb_channels,
                               p_sys->pi_chan_table );
 
     return VLC_SUCCESS;
diff --git a/modules/audio_output/directx.c b/modules/audio_output/directx.c
index 1862710..5a26d78 100644
--- a/modules/audio_output/directx.c
+++ b/modules/audio_output/directx.c
@@ -787,7 +787,7 @@ static int CreateDSBuffer( audio_output_t *p_aout, int i_format,
     p_aout->sys->i_channel_mask = waveformat.dwChannelMask;
     p_aout->sys->b_chan_reorder =
         aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
-                                  waveformat.dwChannelMask, i_nb_channels,
+                                  waveformat.dwChannelMask,
                                   p_aout->sys->pi_chan_table );
 
     if( p_aout->sys->b_chan_reorder )
diff --git a/modules/audio_output/waveout.c b/modules/audio_output/waveout.c
index 63914c2..4ec5d44 100644
--- a/modules/audio_output/waveout.c
+++ b/modules/audio_output/waveout.c
@@ -659,7 +659,7 @@ static int OpenWaveOut( audio_output_t *p_aout, uint32_t i_device_id, int i_form
 
     p_aout->sys->b_chan_reorder =
         aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
-                                  waveformat.dwChannelMask, i_nb_channels,
+                                  waveformat.dwChannelMask,
                                   p_aout->sys->pi_chan_table );
 
     if( p_aout->sys->b_chan_reorder )
diff --git a/modules/codec/opus.c b/modules/codec/opus.c
index d9d3257..8156976 100644
--- a/modules/codec/opus.c
+++ b/modules/codec/opus.c
@@ -298,7 +298,6 @@ static int ProcessInitialHeader( decoder_t *p_dec, ogg_packet *p_oggpacket )
                                             pi_7channels_in, pi_8channels_in };
         aout_CheckChannelReorder( pi_ch[p_header->channels-3], NULL,
                                   p_dec->fmt_out.audio.i_physical_channels,
-                                  p_header->channels,
                                   pi_chan_table );
         for(int i=0;i<p_header->channels;i++)
             new_stream_map[pi_chan_table[i]]=p_header->stream_map[i];
diff --git a/modules/codec/vorbis.c b/modules/codec/vorbis.c
index 524d79a..5d6cd61 100644
--- a/modules/codec/vorbis.c
+++ b/modules/codec/vorbis.c
@@ -660,14 +660,10 @@ static void ConfigureChannelOrder(int *pi_chan_table, int i_channels, uint32_t i
 
     if( b_decode )
         aout_CheckChannelReorder( pi_channels_in, NULL,
-                                  i_channel_mask,
-                                  i_channels,
-                                  pi_chan_table );
+                                  i_channel_mask, pi_chan_table );
     else
         aout_CheckChannelReorder( NULL, pi_channels_in,
-                                  i_channel_mask,
-                                  i_channels,
-                                  pi_chan_table );
+                                  i_channel_mask, pi_chan_table );
 }
 
 /*****************************************************************************
diff --git a/modules/demux/wav.c b/modules/demux/wav.c
index 6acf631..0bd3adb 100644
--- a/modules/demux/wav.c
+++ b/modules/demux/wav.c
@@ -273,7 +273,6 @@ static int Open( vlc_object_t * p_this )
             p_sys->b_chan_reorder =
                 aout_CheckChannelReorder( pi_channels_in, NULL,
                                           p_sys->i_channel_mask,
-                                          p_sys->fmt.audio.i_channels,
                                           p_sys->pi_chan_table );
 
         msg_Dbg( p_demux, "channel mask: %x, reordering: %i",
diff --git a/modules/mux/wav.c b/modules/mux/wav.c
index db70f7c..bb585ab 100644
--- a/modules/mux/wav.c
+++ b/modules/mux/wav.c
@@ -188,7 +188,6 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
         p_sys->b_chan_reorder =
             aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
                                       p_sys->i_channel_mask,
-                                      p_input->p_fmt->audio.i_channels,
                                       p_sys->pi_chan_table );
 
         msg_Dbg( p_mux, "channel mask: %x, reordering: %i",
diff --git a/src/audio_output/common.c b/src/audio_output/common.c
index 027caab..720d6ff 100644
--- a/src/audio_output/common.c
+++ b/src/audio_output/common.c
@@ -241,40 +241,35 @@ void aout_FormatsPrint( vlc_object_t *obj, const char * psz_text,
 /*****************************************************************************
  * aout_CheckChannelReorder : Check if we need to do some channel re-ordering
  *****************************************************************************/
-int aout_CheckChannelReorder( const uint32_t *pi_chan_order_in,
-                              const uint32_t *pi_chan_order_out,
-                              uint32_t i_channel_mask,
-                              int i_channels, int *pi_chan_table )
+unsigned aout_CheckChannelReorder( const uint32_t *chans_in,
+                                   const uint32_t *chans_out,
+                                   uint32_t mask, int *restrict table )
 {
-    bool b_chan_reorder = false;
-    int i, j, k, l;
+    unsigned channels = 0;
 
-    if( i_channels > AOUT_CHAN_MAX )
-        return false;
-
-    if( pi_chan_order_in == NULL )
-        pi_chan_order_in = pi_vlc_chan_order_wg4;
-    if( pi_chan_order_out == NULL )
-        pi_chan_order_out = pi_vlc_chan_order_wg4;
+    if( chans_in == NULL )
+        chans_in = pi_vlc_chan_order_wg4;
+    if( chans_out == NULL )
+        chans_out = pi_vlc_chan_order_wg4;
 
-    for( i = 0, j = 0; pi_chan_order_in[i]; i++ )
+    for( unsigned i = 0; chans_in[i]; i++ )
     {
-        if( !(i_channel_mask & pi_chan_order_in[i]) ) continue;
-
-        for( k = 0, l = 0; pi_chan_order_in[i] != pi_chan_order_out[k]; k++ )
-        {
-            if( i_channel_mask & pi_chan_order_out[k] ) l++;
-        }
+        const uint32_t chan = chans_in[i];
+        if( !(mask & chan) )
+            continue;
 
-        pi_chan_table[j++] = l;
-    }
+        unsigned index = 0;
+        for( unsigned j = 0; chan != chans_out[j]; j++ )
+            if( mask & chans_out[j] )
+                index++;
 
-    for( i = 0; i < i_channels; i++ )
-    {
-        if( pi_chan_table[i] != i ) b_chan_reorder = true;
+        table[channels++] = index;
     }
 
-    return b_chan_reorder;
+    for( unsigned i = 0; i < channels; i++ )
+        if( table[i] != i )
+            return channels;
+    return 0;
 }
 
 /*****************************************************************************



More information about the vlc-commits mailing list