summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--macosx/HBAudio.m22
-rw-r--r--macosx/HBAudioController.m6
2 files changed, 23 insertions, 5 deletions
diff --git a/macosx/HBAudio.m b/macosx/HBAudio.m
index 3be645456..721e104ba 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 514f7b32f..55dfc9916 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 {