Commit 784b1bd3 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

aout_CheckChannelReorder: remove redundant parameter

The number of channels is conveyed in the channels mask.
parent c87fe2f7
...@@ -178,7 +178,8 @@ static const uint32_t pi_vlc_chan_order_wg4[] = ...@@ -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 * If pi_chan_order_in or pi_chan_order_out is NULL, it will assume that vlc
* internal (WG4) order is requested. * 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 ); VLC_API void aout_ChannelReorder( void *, size_t, unsigned, const int *, unsigned );
/** /**
......
...@@ -214,7 +214,6 @@ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys, ...@@ -214,7 +214,6 @@ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys,
aout_CheckChannelReorder( pi_channels_in, NULL, aout_CheckChannelReorder( pi_channels_in, NULL,
output->i_physical_channels, output->i_physical_channels,
p_sys->i_nb_channels,
p_sys->pi_chan_table ); p_sys->pi_chan_table );
return VLC_SUCCESS; return VLC_SUCCESS;
......
...@@ -176,7 +176,6 @@ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys, ...@@ -176,7 +176,6 @@ static int Open( vlc_object_t *p_this, filter_sys_t *p_sys,
aout_CheckChannelReorder( pi_channels_in, NULL, aout_CheckChannelReorder( pi_channels_in, NULL,
output->i_physical_channels, output->i_physical_channels,
p_sys->i_nb_channels,
p_sys->pi_chan_table ); p_sys->pi_chan_table );
return VLC_SUCCESS; return VLC_SUCCESS;
......
...@@ -787,7 +787,7 @@ static int CreateDSBuffer( audio_output_t *p_aout, int i_format, ...@@ -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->i_channel_mask = waveformat.dwChannelMask;
p_aout->sys->b_chan_reorder = p_aout->sys->b_chan_reorder =
aout_CheckChannelReorder( pi_channels_in, pi_channels_out, aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
waveformat.dwChannelMask, i_nb_channels, waveformat.dwChannelMask,
p_aout->sys->pi_chan_table ); p_aout->sys->pi_chan_table );
if( p_aout->sys->b_chan_reorder ) if( p_aout->sys->b_chan_reorder )
......
...@@ -659,7 +659,7 @@ static int OpenWaveOut( audio_output_t *p_aout, uint32_t i_device_id, int i_form ...@@ -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 = p_aout->sys->b_chan_reorder =
aout_CheckChannelReorder( pi_channels_in, pi_channels_out, aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
waveformat.dwChannelMask, i_nb_channels, waveformat.dwChannelMask,
p_aout->sys->pi_chan_table ); p_aout->sys->pi_chan_table );
if( p_aout->sys->b_chan_reorder ) if( p_aout->sys->b_chan_reorder )
......
...@@ -298,7 +298,6 @@ static int ProcessInitialHeader( decoder_t *p_dec, ogg_packet *p_oggpacket ) ...@@ -298,7 +298,6 @@ static int ProcessInitialHeader( decoder_t *p_dec, ogg_packet *p_oggpacket )
pi_7channels_in, pi_8channels_in }; pi_7channels_in, pi_8channels_in };
aout_CheckChannelReorder( pi_ch[p_header->channels-3], NULL, aout_CheckChannelReorder( pi_ch[p_header->channels-3], NULL,
p_dec->fmt_out.audio.i_physical_channels, p_dec->fmt_out.audio.i_physical_channels,
p_header->channels,
pi_chan_table ); pi_chan_table );
for(int i=0;i<p_header->channels;i++) for(int i=0;i<p_header->channels;i++)
new_stream_map[pi_chan_table[i]]=p_header->stream_map[i]; new_stream_map[pi_chan_table[i]]=p_header->stream_map[i];
......
...@@ -660,14 +660,10 @@ static void ConfigureChannelOrder(int *pi_chan_table, int i_channels, uint32_t i ...@@ -660,14 +660,10 @@ static void ConfigureChannelOrder(int *pi_chan_table, int i_channels, uint32_t i
if( b_decode ) if( b_decode )
aout_CheckChannelReorder( pi_channels_in, NULL, aout_CheckChannelReorder( pi_channels_in, NULL,
i_channel_mask, i_channel_mask, pi_chan_table );
i_channels,
pi_chan_table );
else else
aout_CheckChannelReorder( NULL, pi_channels_in, aout_CheckChannelReorder( NULL, pi_channels_in,
i_channel_mask, i_channel_mask, pi_chan_table );
i_channels,
pi_chan_table );
} }
/***************************************************************************** /*****************************************************************************
......
...@@ -273,7 +273,6 @@ static int Open( vlc_object_t * p_this ) ...@@ -273,7 +273,6 @@ static int Open( vlc_object_t * p_this )
p_sys->b_chan_reorder = p_sys->b_chan_reorder =
aout_CheckChannelReorder( pi_channels_in, NULL, aout_CheckChannelReorder( pi_channels_in, NULL,
p_sys->i_channel_mask, p_sys->i_channel_mask,
p_sys->fmt.audio.i_channels,
p_sys->pi_chan_table ); p_sys->pi_chan_table );
msg_Dbg( p_demux, "channel mask: %x, reordering: %i", msg_Dbg( p_demux, "channel mask: %x, reordering: %i",
......
...@@ -188,7 +188,6 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input ) ...@@ -188,7 +188,6 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
p_sys->b_chan_reorder = p_sys->b_chan_reorder =
aout_CheckChannelReorder( pi_channels_in, pi_channels_out, aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
p_sys->i_channel_mask, p_sys->i_channel_mask,
p_input->p_fmt->audio.i_channels,
p_sys->pi_chan_table ); p_sys->pi_chan_table );
msg_Dbg( p_mux, "channel mask: %x, reordering: %i", msg_Dbg( p_mux, "channel mask: %x, reordering: %i",
......
...@@ -241,40 +241,35 @@ void aout_FormatsPrint( vlc_object_t *obj, const char * psz_text, ...@@ -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 * aout_CheckChannelReorder : Check if we need to do some channel re-ordering
*****************************************************************************/ *****************************************************************************/
int aout_CheckChannelReorder( const uint32_t *pi_chan_order_in, unsigned aout_CheckChannelReorder( const uint32_t *chans_in,
const uint32_t *pi_chan_order_out, const uint32_t *chans_out,
uint32_t i_channel_mask, uint32_t mask, int *restrict table )
int i_channels, int *pi_chan_table )
{ {
bool b_chan_reorder = false; unsigned channels = 0;
int i, j, k, l;
if( i_channels > AOUT_CHAN_MAX ) if( chans_in == NULL )
return false; chans_in = pi_vlc_chan_order_wg4;
if( chans_out == NULL )
if( pi_chan_order_in == NULL ) chans_out = pi_vlc_chan_order_wg4;
pi_chan_order_in = pi_vlc_chan_order_wg4;
if( pi_chan_order_out == NULL )
pi_chan_order_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; const uint32_t chan = chans_in[i];
if( !(mask & chan) )
for( k = 0, l = 0; pi_chan_order_in[i] != pi_chan_order_out[k]; k++ ) continue;
{
if( i_channel_mask & pi_chan_order_out[k] ) l++;
}
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++ ) table[channels++] = index;
{
if( pi_chan_table[i] != i ) b_chan_reorder = true;
} }
return b_chan_reorder; for( unsigned i = 0; i < channels; i++ )
if( table[i] != i )
return channels;
return 0;
} }
/***************************************************************************** /*****************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment