From a24beee4f3694f797ea967869dbd94a215fc770d Mon Sep 17 00:00:00 2001 From: dynaflash Date: Fri, 29 Oct 2010 14:35:00 +0000 Subject: [PATCH] MacGui: Audio - Using fallback codec no longer sets the bit rate from the preset. Setting the sample rate no longer sets the bit rate to the default if the currently selected bit rate is still supported. git-svn-id: svn://localhost/HandBrake/trunk@3627 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- macosx/HBAudio.m | 22 ++++++++++++++++++---- macosx/HBAudioController.m | 6 +++++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/macosx/HBAudio.m b/macosx/HBAudio.m index 3be64545..721e104b 100644 --- a/macosx/HBAudio.m +++ b/macosx/HBAudio.m @@ -325,7 +325,7 @@ static NSMutableArray *masterBitRateArray = nil; return; } -- (void) updateBitRates +- (void) updateBitRates: (BOOL) shouldSetDefault { NSMutableArray *permittedBitRates = [NSMutableArray array]; @@ -391,7 +391,9 @@ static NSMutableArray *masterBitRateArray = nil; [self setBitRates: permittedBitRates]; // Select the proper one - [self setBitRateFromName: defaultBitRate]; + if (YES == shouldSetDefault) { + [self setBitRateFromName: defaultBitRate]; + } if (nil == [self bitRate] || NO == [permittedBitRates containsObject: [self bitRate]]) { [self setBitRate: [permittedBitRates lastObject]]; @@ -464,7 +466,7 @@ static NSMutableArray *masterBitRateArray = nil; [codec release]; codec = aValue; [self updateMixdowns]; - [self updateBitRates]; + [self updateBitRates: YES]; } return; } @@ -476,12 +478,24 @@ static NSMutableArray *masterBitRateArray = nil; [aValue retain]; [mixdown release]; mixdown = aValue; - [self updateBitRates]; + [self updateBitRates: YES]; [[NSNotificationCenter defaultCenter] postNotificationName: HBMixdownChangedNotification object: self]; } return; } +- (void) setSampleRate: (NSDictionary *) aValue + +{ + if ((nil != aValue || nil != sampleRate) && NO == [aValue isEqual: sampleRate]) { + [aValue retain]; + [sampleRate release]; + sampleRate = aValue; + [self updateBitRates: NO]; + } + return; +} + - (NSArray *) tracks { return [controller masterTrackArray]; } - (NSArray *) sampleRates { return masterSampleRateArray; } diff --git a/macosx/HBAudioController.m b/macosx/HBAudioController.m index 514f7b32..55dfc991 100644 --- a/macosx/HBAudioController.m +++ b/macosx/HBAudioController.m @@ -241,6 +241,7 @@ NSString *HBMixdownChangedNotification = @"HBMixdownChangedNotification"; while (nil != (dict = [enumerator nextObject])) { if ([self countOfAudioArray] < maximumNumberOfAllowedAudioTracks) { + BOOL fallenBack = NO; HBAudio *newAudio = [[HBAudio alloc] init]; [newAudio setController: self]; [self insertObject: newAudio inAudioArrayAtIndex: [self countOfAudioArray]]; @@ -257,6 +258,7 @@ NSString *HBMixdownChangedNotification = @"HBMixdownChangedNotification"; YES == [key isEqualToString: @"AC3 Passthru"]) { if (NO == [newAudio setCodecFromName: key]) { key = @"AC3"; + fallenBack = YES; } } // If our preset wants us to support a codec that the track does not support, instead @@ -264,7 +266,9 @@ NSString *HBMixdownChangedNotification = @"HBMixdownChangedNotification"; if (YES == [newAudio setCodecFromName: key]) { [newAudio setMixdownFromName: [dict objectForKey: @"AudioMixdown"]]; [newAudio setSampleRateFromName: [dict objectForKey: @"AudioSamplerate"]]; - [newAudio setBitRateFromName: [dict objectForKey: @"AudioBitrate"]]; + if (NO == fallenBack) { + [newAudio setBitRateFromName: [dict objectForKey: @"AudioBitrate"]]; + } [newAudio setDrc: [dict objectForKey: @"AudioTrackDRCSlider"]]; } else { -- 2.11.0