From 991912416a55dfcf100591f31e6e72f3f2f5275d Mon Sep 17 00:00:00 2001 From: jstebbins Date: Sun, 12 Jun 2011 18:05:20 +0000 Subject: 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 --- libhb/platform/macosx/encca_aac.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'libhb/platform') 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 -- cgit v1.2.3