Commit 0e519f71 authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Flac Packetizer issue

The lack of channels seem to be blocking transcoding of flac files
Ref #4179 #6400

This might not be enough, though
parent bcc966ad
...@@ -90,6 +90,27 @@ struct decoder_sys_t ...@@ -90,6 +90,27 @@ struct decoder_sys_t
unsigned int i_rate, i_channels, i_bits_per_sample; unsigned int i_rate, i_channels, i_bits_per_sample;
}; };
static const int pi_channels_maps[9] =
{
0,
AOUT_CHAN_CENTER,
AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT,
AOUT_CHAN_CENTER | AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT,
AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_REARLEFT
| AOUT_CHAN_REARRIGHT,
AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
| AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT,
AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
| AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_LFE,
AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
| AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_MIDDLELEFT
| AOUT_CHAN_MIDDLERIGHT,
AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER | AOUT_CHAN_REARLEFT
| AOUT_CHAN_REARRIGHT | AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT
| AOUT_CHAN_LFE
};
/***************************************************************************** /*****************************************************************************
* Local prototypes * Local prototypes
*****************************************************************************/ *****************************************************************************/
...@@ -338,6 +359,11 @@ static block_t *Packetize( decoder_t *p_dec, block_t **pp_block ) ...@@ -338,6 +359,11 @@ static block_t *Packetize( decoder_t *p_dec, block_t **pp_block )
if( p_sys->i_pts == p_sys->bytestream.p_block->i_pts ) if( p_sys->i_pts == p_sys->bytestream.p_block->i_pts )
p_sys->i_pts = p_sys->bytestream.p_block->i_pts = VLC_TS_INVALID; p_sys->i_pts = p_sys->bytestream.p_block->i_pts = VLC_TS_INVALID;
p_dec->fmt_out.audio.i_channels = p_sys->i_channels;
p_dec->fmt_out.audio.i_physical_channels =
p_dec->fmt_out.audio.i_original_channels =
pi_channels_maps[p_sys->stream_info.channels];
/* So p_block doesn't get re-added several times */ /* So p_block doesn't get re-added several times */
*pp_block = block_BytestreamPop( &p_sys->bytestream ); *pp_block = block_BytestreamPop( &p_sys->bytestream );
......
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