summaryrefslogtreecommitdiffstats
path: root/libhb/platform
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/platform
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/platform')
-rw-r--r--libhb/platform/macosx/encca_aac.c17
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