[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