[vlc-commits] Flac Packetizer issue
Jean-Baptiste Kempf
git at videolan.org
Sun Aug 5 23:59:59 CEST 2012
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Sun Aug 5 23:57:30 2012 +0200| [0e519f712db62f1c0f16983215e370af66f3a142] | committer: 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
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0e519f712db62f1c0f16983215e370af66f3a142
---
modules/packetizer/flac.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/modules/packetizer/flac.c b/modules/packetizer/flac.c
index 1fef09a..5d1d5bd 100644
--- a/modules/packetizer/flac.c
+++ b/modules/packetizer/flac.c
@@ -90,6 +90,27 @@ struct decoder_sys_t
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
*****************************************************************************/
@@ -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 )
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 */
*pp_block = block_BytestreamPop( &p_sys->bytestream );
More information about the vlc-commits
mailing list