summaryrefslogtreecommitdiffstats
path: root/libhb/encavcodecaudio.c
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2011-06-12 18:05:20 +0000
committerjstebbins <[email protected]>2011-06-12 18:05:20 +0000
commit991912416a55dfcf100591f31e6e72f3f2f5275d (patch)
tree0ed644ee9ba9d05e20e30de2a0805aa27802405c /libhb/encavcodecaudio.c
parente36c5d5cc69a207b088a0c92c8c6cb7a3f50ba21 (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.c14
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);
}