diff options
Diffstat (limited to 'macosx/Controller.mm')
-rw-r--r-- | macosx/Controller.mm | 63 |
1 files changed, 59 insertions, 4 deletions
diff --git a/macosx/Controller.mm b/macosx/Controller.mm index 8ef13d725..510fd21c1 100644 --- a/macosx/Controller.mm +++ b/macosx/Controller.mm @@ -21,7 +21,6 @@ static int FormatSettings[4][10] = { { HB_MUX_MP4 | HB_VCODEC_FFMPEG | HB_ACODEC_FAAC, HB_MUX_MP4 | HB_VCODEC_X264 | HB_ACODEC_FAAC, - HB_MUX_MP4 | HB_VCODEC_X264 | HB_ACODEC_AC3, 0, 0 }, { HB_MUX_MKV | HB_VCODEC_FFMPEG | HB_ACODEC_FAAC, @@ -1550,6 +1549,38 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It job->audios[0] = -1; } + /* + * Where one or more of the audio tracks has a mixdown of DPLII+AC3 we need to create an extra + * track for each. + */ + if (job->audio_mixdowns[0] == HB_AMIXDOWN_DOLBYPLII_AC3) + { + /* + * Make space for the AC3 track by moving 1 to 2 + */ + job->audios[2] = job->audios[1]; + job->audio_mixdowns[2] = job->audio_mixdowns[1]; + job->audios[1] = job->audios[0]; + job->audio_mixdowns[0] = HB_AMIXDOWN_DOLBYPLII; + job->audio_mixdowns[1] = HB_AMIXDOWN_AC3; + } + + if (job->audio_mixdowns[1] == HB_AMIXDOWN_DOLBYPLII_AC3) + { + job->audios[2] = job->audios[1]; + job->audio_mixdowns[1] = HB_AMIXDOWN_DOLBYPLII; + job->audio_mixdowns[2] = HB_AMIXDOWN_AC3; + job->audios[3] = -1; + } + + if (job->audio_mixdowns[2] == HB_AMIXDOWN_DOLBYPLII_AC3) + { + job->audios[3] = job->audios[2]; + job->audio_mixdowns[2] = HB_AMIXDOWN_DOLBYPLII; + job->audio_mixdowns[3] = HB_AMIXDOWN_AC3; + job->audios[4] = -1; + } + /* Audio settings */ job->arate = hb_audio_rates[[fAudRatePopUp indexOfSelectedItem]].rate; @@ -2223,7 +2254,6 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It [fDstCodecsPopUp addItemWithTitle:_( @"MPEG-4 Video / AAC Audio" )]; [fDstCodecsPopUp addItemWithTitle:_( @"AVC/H.264 Video / AAC Audio" )]; - [fDstCodecsPopUp addItemWithTitle:_( @"AVC/H.264 Video / AC-3 Audio" )]; /* We enable the create chapters checkbox here since we are .mp4*/ [fCreateChapterMarkers setEnabled: YES]; /* We show the Large File (64 bit formatting) checkbox since we are .mp4 @@ -2922,6 +2952,25 @@ the user is using "Custom" settings by determining the sender*/ maxMixdownUsed = MAX(maxMixdownUsed, hb_audio_mixdowns[4].amixdown); } + /* do we want to add an AC-3 passthrough option? */ + if (audio->codec == HB_ACODEC_AC3) { + NSMenuItem *menuItem = [[mixdownPopUp menu] addItemWithTitle: + [NSString stringWithCString: hb_audio_mixdowns[5].human_readable_name] + action: NULL keyEquivalent: @""]; + [menuItem setTag: hb_audio_mixdowns[5].amixdown]; + if (minMixdownUsed == 0) minMixdownUsed = hb_audio_mixdowns[5].amixdown; + maxMixdownUsed = MAX(maxMixdownUsed, hb_audio_mixdowns[5].amixdown); + } + + /* do we want to add the DPLII+AC3 passthrough option? */ + if (audio->codec == HB_ACODEC_AC3) { + NSMenuItem *menuItem = [[mixdownPopUp menu] addItemWithTitle: + [NSString stringWithCString: hb_audio_mixdowns[6].human_readable_name] + action: NULL keyEquivalent: @""]; + [menuItem setTag: hb_audio_mixdowns[6].amixdown]; + if (minMixdownUsed == 0) minMixdownUsed = hb_audio_mixdowns[6].amixdown; + maxMixdownUsed = MAX(maxMixdownUsed, hb_audio_mixdowns[6].amixdown); + } /* auto-select the best mixdown based on our saved mixdown preference */ /* for now, this is hard-coded to a "best" mixdown of HB_AMIXDOWN_DOLBYPLII */ @@ -2975,7 +3024,10 @@ the user is using "Custom" settings by determining the sender*/ { case HB_ACODEC_FAAC: /* check if we have a 6ch discrete conversion in either audio track */ - if ([[fAudTrack1MixPopUp selectedItem] tag] == HB_AMIXDOWN_6CH || [[fAudTrack2MixPopUp selectedItem] tag] == HB_AMIXDOWN_6CH) + if ([[fAudTrack1MixPopUp selectedItem] tag] == HB_AMIXDOWN_6CH || + [[fAudTrack2MixPopUp selectedItem] tag] == HB_AMIXDOWN_6CH || + [[fAudTrack1MixPopUp selectedItem] tag] == HB_AMIXDOWN_AC3 || + [[fAudTrack2MixPopUp selectedItem] tag] == HB_AMIXDOWN_AC3) { /* FAAC is happy using our min bitrate of 32 kbps, even for 6ch */ minbitrate = 32; @@ -3041,7 +3093,10 @@ the user is using "Custom" settings by determining the sender*/ } /* select the default bitrate (but use 384 for 6-ch AAC) */ - if ([[fAudTrack1MixPopUp selectedItem] tag] == HB_AMIXDOWN_6CH || [[fAudTrack2MixPopUp selectedItem] tag] == HB_AMIXDOWN_6CH) + if ([[fAudTrack1MixPopUp selectedItem] tag] == HB_AMIXDOWN_6CH || + [[fAudTrack2MixPopUp selectedItem] tag] == HB_AMIXDOWN_6CH || + [[fAudTrack1MixPopUp selectedItem] tag] == HB_AMIXDOWN_AC3 || + [[fAudTrack2MixPopUp selectedItem] tag] == HB_AMIXDOWN_AC3) { [fAudBitratePopUp selectItemWithTag: 384]; } |