[vlc-commits] macosx: CAS: introduce functionality for keep checkboxes (close #8601)
David Fuhrmann
git at videolan.org
Fri Jun 21 22:43:44 CEST 2013
vlc | branch: master | David Fuhrmann <david.fuhrmann at googlemail.com> | Fri Jun 21 22:05:51 2013 +0200| [508663821ce351b03c4d573914c17129e2b3f6f7] | committer: David Fuhrmann
macosx: CAS: introduce functionality for keep checkboxes (close #8601)
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=508663821ce351b03c4d573914c17129e2b3f6f7
---
modules/gui/macosx/ConvertAndSave.m | 69 ++++++++++++++++++++++++++---------
1 file changed, 51 insertions(+), 18 deletions(-)
diff --git a/modules/gui/macosx/ConvertAndSave.m b/modules/gui/macosx/ConvertAndSave.m
index 2dbb965..c6a2695 100644
--- a/modules/gui/macosx/ConvertAndSave.m
+++ b/modules/gui/macosx/ConvertAndSave.m
@@ -711,7 +711,9 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
NSArray * tempArray = [_videoCodecs objectAtIndex:1];
NSUInteger count = [tempArray count];
NSString * searchString = [components objectAtIndex:4];
- if ([searchString isEqualToString:@"none"] || [searchString isEqualToString:@"0"]) {
+ int videoKeep = [searchString isEqualToString:@"copy"];
+ [_customize_vid_keep_ckb setState:videoKeep];
+ if ([searchString isEqualToString:@"none"] || [searchString isEqualToString:@"0"] || videoKeep) {
[_customize_vid_codec_pop selectItemAtIndex:-1];
} else {
for (NSUInteger x = 0; x < count; x++) {
@@ -725,7 +727,9 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
tempArray = [_audioCodecs objectAtIndex:1];
count = [tempArray count];
searchString = [components objectAtIndex:10];
- if ([searchString isEqualToString:@"none"] || [searchString isEqualToString:@"0"]) {
+ int audioKeep = [searchString isEqualToString:@"copy"];
+ [_customize_aud_keep_ckb setState:audioKeep];
+ if ([searchString isEqualToString:@"none"] || [searchString isEqualToString:@"0"] || audioKeep) {
[_customize_aud_codec_pop selectItemAtIndex:-1];
} else {
for (NSUInteger x = 0; x < count; x++) {
@@ -862,10 +866,11 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
- (NSString *)composedOptions
{
NSMutableString *composedOptions = [[NSMutableString alloc] initWithString:@":sout=#transcode{"];
+ BOOL haveVideo = YES;
if ([[self.currentProfile objectAtIndex:1] intValue]) {
// video is enabled
+ if (![[self.currentProfile objectAtIndex:4] isEqualToString:@"copy"]) {
[composedOptions appendFormat:@"vcodec=%@", [self.currentProfile objectAtIndex:4]];
- if (![[self.currentProfile objectAtIndex:4] isEqualToString:@"none"]) {
if ([[self.currentProfile objectAtIndex:5] intValue] > 0) // bitrate
[composedOptions appendFormat:@",vb=%@", [self.currentProfile objectAtIndex:5]];
if ([[self.currentProfile objectAtIndex:6] floatValue] > 0.) // scale
@@ -876,28 +881,40 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
[composedOptions appendFormat:@",width=%@", [self.currentProfile objectAtIndex:8]];
if ([[self.currentProfile objectAtIndex:9] intValue] > 0) // height
[composedOptions appendFormat:@",height=%@", [self.currentProfile objectAtIndex:9]];
+ } else {
+ haveVideo = NO;
}
} else {
[composedOptions appendString:@"vcodec=none"];
}
- [composedOptions appendString:@","];
-
+ BOOL haveAudio = YES;
if ([[self.currentProfile objectAtIndex:2] intValue]) {
// audio is enabled
+ if (![[self.currentProfile objectAtIndex:10] isEqualToString:@"copy"]) {
+ if(haveVideo)
+ [composedOptions appendString:@","];
+ [composedOptions appendFormat:@"acodec=%@", [self.currentProfile objectAtIndex:10]];
+
- [composedOptions appendFormat:@"acodec=%@", [self.currentProfile objectAtIndex:10]];
- if (![[self.currentProfile objectAtIndex:10] isEqualToString:@"none"]) {
+ [composedOptions appendFormat:@"acodec=%@", [self.currentProfile objectAtIndex:10]];
[composedOptions appendFormat:@",ab=%@", [self.currentProfile objectAtIndex:11]]; // bitrate
[composedOptions appendFormat:@",channels=%@", [self.currentProfile objectAtIndex:12]]; // channel number
[composedOptions appendFormat:@",samplerate=%@", [self.currentProfile objectAtIndex:13]]; // sample rate
+ } else {
+ haveAudio = NO;
}
} else {
+ if(haveVideo)
+ [composedOptions appendString:@","];
+
[composedOptions appendString:@"acodec=none"];
}
if ([self.currentProfile objectAtIndex:3]) {
+ if(haveVideo || haveAudio)
+ [composedOptions appendString:@","];
// subtitles enabled
- [composedOptions appendFormat:@",scodec=%@", [self.currentProfile objectAtIndex:14]];
+ [composedOptions appendFormat:@"scodec=%@", [self.currentProfile objectAtIndex:14]];
if ([[self.currentProfile objectAtIndex:15] intValue])
[composedOptions appendFormat:@",soverlay"];
}
@@ -956,21 +973,37 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
[self.currentProfile addObject: [NSString stringWithFormat:@"%li", [_customize_vid_ckb state]]];
[self.currentProfile addObject: [NSString stringWithFormat:@"%li", [_customize_aud_ckb state]]];
[self.currentProfile addObject: [NSString stringWithFormat:@"%li", [_customize_subs_ckb state]]];
- i = [_customize_vid_codec_pop indexOfSelectedItem];
- if (i >= 0)
- [self.currentProfile addObject: [[_videoCodecs objectAtIndex:1] objectAtIndex:i]];
- else
- [self.currentProfile addObject: @"none"];
+
+ NSString *videoCodec;
+ if([_customize_vid_keep_ckb state] == NSOnState)
+ videoCodec = @"copy";
+ else {
+ i = [_customize_vid_codec_pop indexOfSelectedItem];
+ if (i >= 0)
+ videoCodec = [[_videoCodecs objectAtIndex:1] objectAtIndex:i];
+ else
+ videoCodec = @"none";
+ }
+ [self.currentProfile addObject: videoCodec];
+
[self.currentProfile addObject: [NSString stringWithFormat:@"%i", [self vidBitrate]]];
[self.currentProfile addObject: [NSString stringWithFormat:@"%i", [[[_customize_vid_scale_pop selectedItem] title] intValue]]];
[self.currentProfile addObject: [NSString stringWithFormat:@"%i", [self vidFramerate]]];
[self.currentProfile addObject: [NSString stringWithFormat:@"%i", [_customize_vid_width_fld intValue]]];
[self.currentProfile addObject: [NSString stringWithFormat:@"%i", [_customize_vid_height_fld intValue]]];
- i = [_customize_aud_codec_pop indexOfSelectedItem];
- if (i >= 0)
- [self.currentProfile addObject: [[_audioCodecs objectAtIndex:1] objectAtIndex:i]];
- else
- [self.currentProfile addObject: @"none"];
+
+ NSString *audioCodec;
+ if([_customize_aud_keep_ckb state] == NSOnState)
+ audioCodec = @"copy";
+ else {
+ i = [_customize_aud_codec_pop indexOfSelectedItem];
+ if (i >= 0)
+ audioCodec = [[_audioCodecs objectAtIndex:1] objectAtIndex:i];
+ else
+ audioCodec = @"none";
+ }
+ [self.currentProfile addObject: audioCodec];
+
[self.currentProfile addObject: [NSString stringWithFormat:@"%i", [self audBitrate]]];
[self.currentProfile addObject: [NSString stringWithFormat:@"%i", [self audChannels]]];
[self.currentProfile addObject: [[_customize_aud_samplerate_pop selectedItem] title]];
More information about the vlc-commits
mailing list