diff options
author | jstebbins <[email protected]> | 2011-06-12 18:05:20 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2011-06-12 18:05:20 +0000 |
commit | 991912416a55dfcf100591f31e6e72f3f2f5275d (patch) | |
tree | 0ed644ee9ba9d05e20e30de2a0805aa27802405c /libhb/encavcodecaudio.c | |
parent | e36c5d5cc69a207b088a0c92c8c6cb7a3f50ba21 (diff) |
libhb: generalize channel remapping between decoders and encoders
Decoders set the channel map of their output in hb_audio_config_t.
Encoders use this information to remap while encoding.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4052 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/encavcodecaudio.c')
-rw-r--r-- | libhb/encavcodecaudio.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/libhb/encavcodecaudio.c b/libhb/encavcodecaudio.c index 7c0a51971..78d1a0565 100644 --- a/libhb/encavcodecaudio.c +++ b/libhb/encavcodecaudio.c @@ -168,17 +168,7 @@ static hb_buffer_t * Encode( hb_work_object_t * w ) hb_list_getbytes( pv->list, pv->buf, pv->input_samples * sizeof( float ), &pts, &pos); - hb_chan_map_t *map = NULL; - if ( audio->config.in.codec == HB_ACODEC_AC3 ) - { - map = &hb_ac3_chan_map; - } - else if ( audio->config.in.codec == HB_ACODEC_DCA || - audio->config.in.codec == HB_ACODEC_LPCM ) - { - map = &hb_qt_chan_map; - } - if ( map ) + if ( audio->config.in.channel_map != &hb_smpte_chan_map ) { int layout; switch (audio->config.out.mixdown) @@ -196,7 +186,7 @@ static hb_buffer_t * Encode( hb_work_object_t * w ) layout = HB_INPUT_CH_LAYOUT_3F2R | HB_INPUT_CH_LAYOUT_HAS_LFE; break; } - hb_layout_remap( map, &hb_smpte_chan_map, layout, + hb_layout_remap( audio->config.in.channel_map, &hb_smpte_chan_map, layout, (float*)pv->buf, pv->samples_per_frame); } |