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/platform | |
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/platform')
-rw-r--r-- | libhb/platform/macosx/encca_aac.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/libhb/platform/macosx/encca_aac.c b/libhb/platform/macosx/encca_aac.c index 85c9c2d88..97f802208 100644 --- a/libhb/platform/macosx/encca_aac.c +++ b/libhb/platform/macosx/encca_aac.c @@ -192,11 +192,20 @@ int encCoreAudioInit( hb_work_object_t * w, hb_job_t * job, enum AAC_MODE mode ) } } - if( ( audio->config.out.mixdown == HB_AMIXDOWN_6CH ) && ( audio->config.in.codec == HB_ACODEC_AC3) ) + if( ( audio->config.out.mixdown == HB_AMIXDOWN_6CH ) && ( audio->config.in.channel_map != &hb_qt_chan_map ) ) { - SInt32 channelMap[6] = { 2, 1, 3, 4, 5, 0 }; - AudioConverterSetProperty( pv->converter, kAudioConverterChannelMap, - sizeof( channelMap ), channelMap ); + if( audio->config.in.channel_map == &hb_ac3_chan_map ) + { + SInt32 channelMap[6] = { 2, 1, 3, 4, 5, 0 }; + AudioConverterSetProperty( pv->converter, kAudioConverterChannelMap, + sizeof( channelMap ), channelMap ); + } + else if( audio->config.in.channel_map == &hb_smpte_chan_map ) + { + SInt32 channelMap[6] = { 2, 0, 1, 4, 5, 3 }; + AudioConverterSetProperty( pv->converter, kAudioConverterChannelMap, + sizeof( channelMap ), channelMap ); + } } // set encoder quality to maximum |