/*****************************************************************************
* wizard.m: MacOS X Streaming Wizard
*****************************************************************************
- * Copyright (C) 2005-2009 the VideoLAN team
+ * Copyright (C) 2005-2012 VLC authors and VideoLAN
* $Id$
*
- * Authors: Felix Kühne <fkuehne at videolan dot org>
+ * Authors: Felix Paul Kühne <fkuehne at videolan dot org>,
+ * Brendon Justin <brendonjustin at gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/* add audio-bitrates for transcoding */
NSArray * audioBitratesArray;
- audioBitratesArray = [NSArray arrayWithObjects: @"512", @"256", @"192",
+ audioBitratesArray = [NSArray arrayWithObjects: @"512", @"256", @"192",
@"128", @"64", @"32", @"16", nil ];
[o_t4_pop_audioBitrate removeAllItems];
[o_t4_pop_audioBitrate addItemsWithTitles: audioBitratesArray];
/* add video-bitrates for transcoding */
NSArray * videoBitratesArray;
- videoBitratesArray = [NSArray arrayWithObjects: @"3072", @"2048", @"1024",
+ videoBitratesArray = [NSArray arrayWithObjects: @"3072", @"2048", @"1024",
@"768", @"512", @"256", @"192", @"128", @"64", @"32", @"16", nil ];
[o_t4_pop_videoBitrate removeAllItems];
[o_t4_pop_videoBitrate addItemsWithTitles: videoBitratesArray];
NSArray * o_mjpg;
NSArray * o_theo;
NSArray * o_dummyVid;
- o_mp1v = [NSArray arrayWithObjects: @"MPEG-1 Video", @"mp1v",
- _NS("MPEG-1 Video codec (usable with MPEG PS, MPEG TS, MPEG1, OGG "
+ o_mp1v = [NSArray arrayWithObjects: @"MPEG-1 Video", @"mp1v",
+ _NS("MPEG-1 Video codec (usable with MPEG PS, MPEG TS, MPEG1, OGG "
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_OGG", @"MUX_RAW",
@"NO", @"NO", @"NO", @"NO", nil];
o_mp2v = [NSArray arrayWithObjects: @"MPEG-2 Video", @"mp2v",
o_videoCodecs = [[NSArray alloc] initWithObjects: o_mp1v, o_mp2v, o_mp4v,
o_div1, o_div2, o_div3, o_h263, o_h264, o_wmv1, o_wmv2, o_mjpg, o_theo,
o_dummyVid, nil];
-
+
NSArray * o_mpga;
NSArray * o_mp3;
"a small subset of VLC's streaming and transcoding capabilities. "
"The Open and 'Saving/Streaming' dialogs will give access to more "
"features.")];
- [[o_t1_matrix_strmgOrTrnscd cellAtRow:0 column:0] setTitle:
+ [[o_t1_matrix_strmgOrTrnscd cellAtRow:0 column:0] setTitle:
_NS("Stream to network")];
- [[o_t1_matrix_strmgOrTrnscd cellAtRow:1 column:0] setTitle:
+ [[o_t1_matrix_strmgOrTrnscd cellAtRow:1 column:0] setTitle:
_NS("Transcode/Save to file")];
/* page two ("Input") */
stringByAppendingString: @":"]];
}
-- (void)initWithExtractValuesFrom: (NSString *)from
+- (void)initWithExtractValuesFrom: (NSString *)from
to: (NSString *)to
ofItem: (NSString *)item
{
[o_t2_ckb_enblPartExtrct setState: NSOnState];
[self t2_enableExtract: nil];
msg_Dbg(VLCIntf, "wizard interface is set");
-
+
[o_wizard_window center];
[o_wizard_window display];
[o_wizard_window makeKeyAndOrderFront:nil];
- (IBAction)nextTab:(id)sender
{
- if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString: @"Hello"])
+ NSString * selectedTabViewItemLabel = [[o_tab_pageHolder selectedTabViewItem] label];
+ if ([selectedTabViewItemLabel isEqualToString: @"Hello"])
{
/* check whether the user wants to stream or just to transcode;
* store information for later usage */
[o_playlist_wizard reloadOutlineView];
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString: @"Input"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Input"])
{
/* check whether partialExtract is enabled and store the values, if needed */
if ([o_t2_ckb_enblPartExtrct state] == NSOnState)
{
if ([o_t2_tbl_plst numberOfSelectedRows] > 0)
{
- int x = 0;
- int y = [[o_t2_tbl_plst selectedRowIndexes] count];
+ NSIndexSet * selectedIndexes = [o_t2_tbl_plst selectedRowIndexes];
+ NSUInteger count = [selectedIndexes count];
NSMutableArray * tempArray = [[NSMutableArray alloc] init];
- while( x != y )
+ for( NSUInteger x = 0; x < count; x++ )
{
- playlist_item_t *p_item =
- [[o_t2_tbl_plst itemAtRow:
- [[o_t2_tbl_plst selectedRowIndexes]
- indexGreaterThanOrEqualToIndex: x]] pointerValue];
+ playlist_item_t *p_item = [[o_t2_tbl_plst itemAtRow: [selectedIndexes indexGreaterThanOrEqualToIndex: x]] pointerValue];
if( p_item->i_children <= 0 )
{
}
else
stop = YES;
- x += 1;
}
- [o_userSelections setObject:[NSArray arrayWithArray: tempArray]
- forKey:@"pathToStrm"];
+ [o_userSelections setObject:[NSArray arrayWithArray: tempArray] forKey:@"pathToStrm"];
[tempArray release];
}
else
"Choose one before going to the next page."));
}
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Streaming 1"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Streaming 1"])
{
/* rebuild the menues for the codec-selections */
[self rebuildCodecMenus];
-
+
/* check which streaming method is selected and store it */
int mode;
mode = [[o_t3_matrix_stmgMhd selectedCell] tag];
* OGG, RAW or ASF */
[o_t4_pop_audioCodec removeItemWithTitle:@"Uncompressed, integer"];
[o_t4_pop_audioCodec removeItemWithTitle:@"Uncompressed, floating point"];
-
+
} else if ( mode == 1 )
{
/* MMS Streaming */
[o_userSelections setObject:@"1" forKey:@"stmgMhd"];
-
+
/* disable all codecs which don't support ASF / ASFH */
[o_t4_pop_audioCodec removeItemWithTitle:@"Vorbis"];
[o_t4_pop_audioCodec removeItemWithTitle:@"FLAC"];
[o_t4_pop_audioCodec removeItemWithTitle:@"Speex"];
[o_t4_pop_audioCodec removeItemWithTitle:@"Uncompressed, integer"];
[o_t4_pop_audioCodec removeItemWithTitle:@"Uncompressed, floating point"];
-
+
[o_t4_pop_videoCodec removeItemWithTitle:@"MPEG-1 Video"];
[o_t4_pop_videoCodec removeItemWithTitle:@"MPEG-2 Video"];
[o_t4_pop_videoCodec removeItemWithTitle:@"H.263"];
/* RTP/UDP Unicast/Multicast Streaming */
[o_userSelections setObject: [[NSNumber numberWithInt: mode]
stringValue] forKey:@"stmgMhd"];
-
+
/* disable all codecs which don't support MPEG-TS */
[o_t4_pop_audioCodec removeItemWithTitle:@"Vorbis"];
[o_t4_pop_audioCodec removeItemWithTitle:@"FLAC"];
[o_tab_pageHolder selectTabViewItemAtIndex:3];
}
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Transcode 1"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Transcode 1"])
{
/* check whether the user wants to transcode the video-track and store
* the related options */
if ([[o_userSelections objectForKey:@"trnscdAudio"] isEqualTo: @"YES"])
{
+ NSInteger i_selectedAudioCodec = [[o_userSelections objectForKey:@"trnscdAudioCodec"] intValue];
+
if ([[o_userSelections objectForKey:@"trnscdVideo"] isEqualTo: @"YES"])
{
+ NSInteger i_selectedVideoCodec = [[o_userSelections objectForKey:@"trnscdVideoCodec"] intValue];
+
/* we are transcoding both audio and video, so we need to check both deps */
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_PS"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_PS"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections
- objectForKey:@"trnscdAudioCodec"] intValue]]
- containsObject: @"MUX_PS"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_PS"])
{
[[o_t5_matrix_encap cellAtRow:0 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:0 column:0];
}
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections
- objectForKey:@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_TS"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_TS"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_TS"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_TS"])
{
[[o_t5_matrix_encap cellAtRow:1 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:1 column:0];
}
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MPEG"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_MPEG"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MPEG"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_MPEG"])
{
[[o_t5_matrix_encap cellAtRow:2 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:2 column:0];
}
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_OGG"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_OGG"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections
- objectForKey:@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_OGG"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_OGG"])
{
[[o_t5_matrix_encap cellAtRow:3 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:3 column:0];
}
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_RAW"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_RAW"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_RAW"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_RAW"])
{
[[o_t5_matrix_encap cellAtRow:4 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:4 column:0];
}
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_ASF"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_ASF"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_ASF"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_ASF"])
{
[[o_t5_matrix_encap cellAtRow:5 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:5 column:0];
}
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MP4"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_MP4"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MP4"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_MP4"])
{
[[o_t5_matrix_encap cellAtRow:6 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:6 column:0];
}
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MOV"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_MOV"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MOV"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_MOV"])
{
[[o_t5_matrix_encap cellAtRow:7 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:7 column:0];
}
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_WAV"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_WAV"])
{
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_WAV"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_WAV"])
{
[[o_t5_matrix_encap cellAtRow:8 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:8 column:0];
/* we just transcoding the audio */
/* select formats supported by the audio codec */
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_PS"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_PS"])
{
[[o_t5_matrix_encap cellAtRow:0 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:0 column:0];
}
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_TS"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_TS"])
{
[[o_t5_matrix_encap cellAtRow:1 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:1 column:0];
}
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MPEG"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_MPEG"])
{
[[o_t5_matrix_encap cellAtRow:2 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:2 column:0];
}
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_OGG"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_OGG"])
{
[[o_t5_matrix_encap cellAtRow:3 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:3 column:0];
}
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_RAW"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_RAW"])
{
[[o_t5_matrix_encap cellAtRow:4 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:4 column:0];
}
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_ASF"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_ASF"])
{
[[o_t5_matrix_encap cellAtRow:5 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:5 column:0];
}
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MP4"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_MP4"])
{
[[o_t5_matrix_encap cellAtRow:6 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:6 column:0];
}
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MOV"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_MOV"])
{
[[o_t5_matrix_encap cellAtRow:7 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:7 column:0];
}
- if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdAudioCodec"] intValue]] containsObject: @"MUX_WAV"])
+ if ([[o_audioCodecs objectAtIndex:i_selectedAudioCodec] containsObject: @"MUX_WAV"])
{
[[o_t5_matrix_encap cellAtRow:8 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:8 column:0];
/* we are just transcoding the video */
/* select formats supported by the video-codec */
+ NSInteger i_selectedVideoCodec = [[o_userSelections objectForKey:@"trnscdVideoCodec"] intValue];
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_PS"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_PS"])
{
[[o_t5_matrix_encap cellAtRow:0 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:0 column:0];
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_TS"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_TS"])
{
[[o_t5_matrix_encap cellAtRow:1 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:1 column:0];
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MPEG"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_MPEG"])
{
[[o_t5_matrix_encap cellAtRow:2 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:2 column:0];
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_OGG"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_OGG"])
{
[[o_t5_matrix_encap cellAtRow:3 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:3 column:0];
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_RAW"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_RAW"])
{
[[o_t5_matrix_encap cellAtRow:4 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:4 column:0];
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_ASF"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_ASF"])
{
[[o_t5_matrix_encap cellAtRow:5 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:5 column:0];
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MP4"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_MP4"])
{
[[o_t5_matrix_encap cellAtRow:6 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:6 column:0];
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MOV"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_MOV"])
{
[[o_t5_matrix_encap cellAtRow:7 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:7 column:0];
}
- if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
- @"trnscdVideoCodec"] intValue]] containsObject: @"MUX_WAV"])
+ if ([[o_videoCodecs objectAtIndex:i_selectedVideoCodec] containsObject: @"MUX_WAV"])
{
[[o_t5_matrix_encap cellAtRow:8 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:8 column:0];
[o_t5_matrix_encap selectCellAtRow:0 column:0];
}
- if ( [o_userSelections objectForKey:@"stmgMhd"] == @"1" )
+ NSInteger i_streamingMethod = [[o_userSelections objectForKey:@"stmgMhd"] intValue];
+ if ( i_streamingMethod == 1 )
{
/* if MMS is the streaming protocol, only ASFH is available */
[[o_t5_matrix_encap cellAtRow:0 column:0] setEnabled:NO];
[[o_t5_matrix_encap cellAtRow:9 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:9 column:0];
}
- else if ( [o_userSelections objectForKey:@"stmgMhd"] == @"0" )
+ else if ( i_streamingMethod == 0 )
{
/* if HTTP is the streaming protocol, disable all unsupported
* encap-formats, but don't touch the other ones selected above */
[[o_t5_matrix_encap cellAtRow:8 column:0] setEnabled:NO];
[[o_t5_matrix_encap cellAtRow:9 column:0] setEnabled:NO];
}
- else if ( [[o_userSelections objectForKey:@"stmgMhd"] intValue] >= 2 )
+ else if ( i_streamingMethod >= 2 )
{
/* if UDP/RTP is the streaming protocol, only MPEG-TS is available */
[[o_t5_matrix_encap cellAtRow:0 column:0] setEnabled:NO];
[[o_t5_matrix_encap cellAtRow:1 column:0] setEnabled:YES];
[o_t5_matrix_encap selectCellAtRow:1 column:0];
}
- int x;
+
BOOL anythingEnabled;
- x = 0;
anythingEnabled = NO;
- while (x != [o_t5_matrix_encap numberOfRows])
+ NSUInteger count = [o_t5_matrix_encap numberOfRows];
+ for (NSUInteger x = 0; x < count; x++ )
{
if ([[o_t5_matrix_encap cellAtRow:x column:0] isEnabled])
- {
anythingEnabled = YES;
- }
- x += 1;
}
+
if (anythingEnabled == YES)
{
/* re-select the previously chosen item, if available */
}
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString: @"Encap"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Encap"])
{
/* get the chosen encap format and store it */
NSNumber * theNum;
}
}
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Streaming 2"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Streaming 2"])
{
/* store the chosen TTL */
[o_userSelections setObject:[o_t6_fld_ttl stringValue] forKey:@"ttl"];
} else {
[o_userSelections setObject:@"NO" forKey:@"sap"];
}
-
+
/* local playback? */
if ([o_t6_ckb_local state] == NSOnState)
{
} else {
[o_userSelections setObject:@"NO" forKey:@"localPb"];
}
-
+
/* include subtitles? */
[o_userSelections setObject:
[[NSNumber numberWithInt:[o_t6_ckb_soverlay state]] stringValue]
forKey: @"soverlay"];
-
+
/* go to "Summary" */
[self showSummary];
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Transcode 2"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Transcode 2"])
{
/* local playback? */
if ([o_t7_ckb_local state] == NSOnState)
if( [[o_userSelections objectForKey:@"pathToStrm"] count] > 1 )
NSBeginInformationalAlertSheet(_NS("No folder selected"),
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil,
- [NSString stringWithFormat: @"%@\n\n%@", _NS("A directory "
+ @"%@\n\n%@", _NS("A directory "
"where to save the files has to be selected."),
_NS("Enter either a valid path or use the \"Choose...\" "
- "button to select a location.")]);
+ "button to select a location."));
else
NSBeginInformationalAlertSheet(_NS("No file selected"),
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil,
- [NSString stringWithFormat: @"%@\n\n%@", _NS("A file "
+ @"%@\n\n%@", _NS("A file "
"where to save the stream has to be selected."),
_NS("Enter either a valid path or use the \"Choose\" "
- "button to select a location.")]);
+ "button to select a location."));
} else {
/* create a string containing the requested suffix for later usage */
NSString * theEncapFormat = [[o_encapFormats objectAtIndex:
[o_userSelections setObject:
[[NSNumber numberWithInt:[o_t7_ckb_soverlay state]] stringValue]
forKey: @"soverlay"];
-
+
/* go to "Summary" */
[self showSummary];
}
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Summary"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Summary"])
{
intf_thread_t * p_intf = VLCIntf;
[[[o_userSelections objectForKey:@"pathToStrm"]
objectAtIndex:x] UTF8String],
[tempString UTF8String] );
- input_item_AddOption( p_input, [[[o_userSelections
- objectForKey:@"opts"] objectAtIndex: x] UTF8String],
- VLC_INPUT_OPTION_TRUSTED );
+
+ /* use the MRL from the text field, in case the user
+ * modified it */
+ input_item_AddOption( p_input, [[o_t8_fld_mrl stringValue] UTF8String], VLC_INPUT_OPTION_TRUSTED );
if(! [[o_userSelections objectForKey:@"partExtractFrom"]
isEqualToString:@""] )
input_item_AddOption( p_input, [[NSString
stringWithFormat: @"start-time=%@", [o_userSelections
objectForKey: @"partExtractFrom"]] UTF8String],
- VLC_INPUT_OPTION_TRUSTED );
+ VLC_INPUT_OPTION_TRUSTED );
}
if(! [[o_userSelections objectForKey:@"partExtractTo"]
int savePreviousSel = 0;
savePreviousSel = [o_t4_pop_videoCodec indexOfSelectedItem];
[o_t4_pop_videoCodec removeAllItems];
- unsigned int x;
- x = 0;
- while (x != [o_videoCodecs count])
+ NSUInteger count = [o_videoCodecs count];
+ for (NSUInteger x = 0; x < count; x++ )
{
[o_t4_pop_videoCodec addItemWithTitle:[[o_videoCodecs objectAtIndex:x]
objectAtIndex:0]];
[[o_t4_pop_videoCodec lastItem] setTag:x];
- x += 1;
}
if( savePreviousSel >= 0 )
[o_t4_pop_videoCodec selectItemAtIndex: savePreviousSel];
savePreviousSel = [o_t4_pop_audioCodec indexOfSelectedItem];
[o_t4_pop_audioCodec removeAllItems];
- x = 0;
- while (x != [o_audioCodecs count])
+ count = [o_audioCodecs count];
+ for (NSUInteger x = 0; x < count; x++)
{
[o_t4_pop_audioCodec addItemWithTitle:[[o_audioCodecs objectAtIndex:x]
objectAtIndex:0]];
[[o_t4_pop_audioCodec lastItem] setTag:x];
- x += 1;
}
if( savePreviousSel >= 0 )
[o_t4_pop_audioCodec selectItemAtIndex: savePreviousSel];
else
[o_t8_fld_inptStream setStringValue:
[[o_userSelections objectForKey:@"pathToStrm"] objectAtIndex: 0]];
-
+
if ([[o_userSelections objectForKey:@"localPb"] isEqualToString: @"YES"])
{
[o_t8_fld_local setStringValue: _NS("yes")];
{
[o_t8_fld_trnscdVideo setStringValue: _NS("no")];
}
-
+
if ([[o_userSelections objectForKey:@"soverlay"] isEqualToString:@"1"])
[o_t8_fld_soverlay setStringValue: _NS("yes")];
else
[o_t8_fld_soverlay setStringValue: _NS("no")];
-
+
if ([[o_userSelections objectForKey:@"trnscdAudio"] isEqualToString:@"YES"])
{
[o_t8_fld_trnscdAudio setStringValue: [NSString stringWithFormat:
/* do only show the destination of the first item and add a counter, if needed */
if( [[o_userSelections objectForKey: @"trnscdFilePath"] count] > 1 )
[o_t8_fld_saveFileTo setStringValue:
- [NSString stringWithFormat: @"%@ (+%i)",
+ [NSString stringWithFormat: @"%@ (+%li)",
[[o_userSelections objectForKey: @"trnscdFilePath"] objectAtIndex:0],
([[o_userSelections objectForKey: @"trnscdFilePath"] count] - 1)]];
else
int x = 0;
int y = [[o_userSelections objectForKey:@"pathToStrm"] count];
NSMutableArray * tempArray = [[NSMutableArray alloc] init];
-
+
/* loop to create an opt-string for each item we're processing */
while( x != y )
{
if ([[o_userSelections objectForKey:@"trnscdVideo"] isEqualToString:@"YES"])
{
[o_trnscdCmd appendString: @"transcode{"];
- [o_trnscdCmd appendFormat: @"vcodec=%@,vb=%i",
+ [o_trnscdCmd appendFormat: @"vcodec=%@,vb=%i",
[[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:@"trnscdVideoCodec"] intValue]] objectAtIndex:1],
[[o_userSelections objectForKey:@"trnscdVideoBitrate"] intValue]];
if ([[o_userSelections objectForKey:@"trnscdAudio"] isEqualToString:@"YES"])
[o_trnscdCmd appendString: @"}:"];
}
}
-
+
/* check whether the user requested local playback. if yes, prepare the
* string, if not, let it empty */
if ([[o_userSelections objectForKey:@"localPb"] isEqualToString:@"YES"])
{
[o_duplicateCmd appendString: @"duplicate{dst=display,dst=\""];
}
-
+
if ([[o_userSelections objectForKey:@"trnscdAudio"] isEqualToString:@"YES"])
{
if ([[o_userSelections objectForKey:@"trnscdVideo"] isEqualToString:@"NO"])
/* in case we transcode the audio only, add this */
[o_trnscdCmd appendString: @"transcode{"];
}
- [o_trnscdCmd appendFormat: @"acodec=%@,ab=%i}:",
+ [o_trnscdCmd appendFormat: @"acodec=%@,ab=%i}:",
[[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:@"trnscdAudioCodec"] intValue]] objectAtIndex:1],
[[o_userSelections objectForKey:@"trnscdAudioBitrate"] intValue]];
}
-
+
if ([[o_userSelections objectForKey:@"trnscdOrStrmg"] isEqualToString:@"trnscd"])
{
/* we are just transcoding and dumping the stuff to a file */
[o_opts_string appendFormat:
- @":sout=#%@%@standard{mux=%@,dst=%@,access=file}",
+ @":sout=#%@%@standard{mux=%@,dst=%@,access=file}",
o_duplicateCmd,
- o_trnscdCmd,
+ o_trnscdCmd,
[[o_encapFormats objectAtIndex: [[o_userSelections objectForKey:@"encapFormat"] intValue]] objectAtIndex:0],
[[o_userSelections objectForKey: @"trnscdFilePath"] objectAtIndex: x]];
}
[o_opts_string appendFormat:
@":sout=#%@%@rtp{mux=%@,dst=%@,%@}",
o_duplicateCmd, o_trnscdCmd,
- [[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0],
+ [[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0],
[o_userSelections objectForKey: @"stmgDest"],
o_sap_option];
}
[o_opts_string appendFormat:
@":sout=#%@%@standard{mux=%@,dst=%@,access=%@,%@}",
o_duplicateCmd, o_trnscdCmd,
- [[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0],
+ [[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0],
[o_userSelections objectForKey: @"stmgDest"],
- [[o_strmgMthds objectAtIndex: [[o_userSelections objectForKey: @"stmgMhd"] intValue]] objectAtIndex:0],
+ [[o_strmgMthds objectAtIndex: [[o_userSelections objectForKey: @"stmgMhd"] intValue]] objectAtIndex:0],
o_sap_option];
}
}
@":sout=#%@%@rtp{mux=%@,dst=%@}",
o_duplicateCmd,
o_trnscdCmd,
- [[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0],
+ [[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0],
[o_userSelections objectForKey: @"stmgDest"]];
}
else
@":sout=#%@%@standard{mux=%@,dst=%@,access=%@}",
o_duplicateCmd,
o_trnscdCmd,
- [[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0],
+ [[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0],
[o_userSelections objectForKey: @"stmgDest"],
[[o_strmgMthds objectAtIndex: [[o_userSelections objectForKey: @"stmgMhd"] intValue]] objectAtIndex:0]];
}
{
[o_opts_string appendString: @"\"}"];
}
-
+
/* add subtitles to the video if desired */
if ([[o_userSelections objectForKey:@"soverlay"] intValue] > 0)
[o_opts_string appendString: @" --sout-transcode-soverlay"];
- (IBAction)prevTab:(id)sender
{
- if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString: @"Summary"])
+ NSString * selectedTabViewItemLabel = [[o_tab_pageHolder selectedTabViewItem] label];
+
+ if ([selectedTabViewItemLabel isEqualToString: @"Summary"])
{
/* check whether we are streaming or transcoding and go back */
if ([[o_userSelections objectForKey:@"trnscdOrStrmg"] isEqualToString:@"strmg"])
/* rename the forward-button */
[o_btn_forward setTitle: _NS("Next")];
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Transcode 2"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Transcode 2"])
{
/* show "Encap" */
[o_tab_pageHolder selectTabViewItemAtIndex:4];
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Streaming 2"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Streaming 2"])
{
/* show "Encap" */
[o_tab_pageHolder selectTabViewItemAtIndex:4];
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Encap"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Encap"])
{
/* show "Transcode 1" */
[o_tab_pageHolder selectTabViewItemAtIndex:3];
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Streaming 1"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Streaming 1"])
{
/* show "Input" */
[o_tab_pageHolder selectTabViewItemAtIndex:1];
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Transcode 1"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Transcode 1"])
{
if ([[o_userSelections objectForKey:@"trnscdOrStrmg"] isEqualToString:@"strmg"])
{
[o_tab_pageHolder selectTabViewItemAtIndex:1];
}
}
- else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
- @"Input"])
+ else if ([selectedTabViewItemLabel isEqualToString: @"Input"])
{
/* reset the wizard before going backwards. Otherwise, we might get
* unwanted behaviour in the Encap-Selection */
o_wizard_window modalDelegate:self didEndSelector:sel contextInfo:nil];
}
-- (void)t2_getNewStreamFromDialog: (NSOpenPanel *)sheet
+- (void)t2_getNewStreamFromDialog: (NSOpenPanel *)sheet
returnCode: (int)returnCode
contextInfo: (void *)contextInfo
{
* and a plain NSSavePanel to save a single file. */
SEL sel = @selector(t7_getTrnscdDestFile:returnCode:contextInfo:);
-
+
if( [[o_userSelections objectForKey:@"pathToStrm"] count] > 1 )
{
NSOpenPanel * saveFolderPanel = [[NSOpenPanel alloc] init];
-
+
[saveFolderPanel setCanChooseDirectories: YES];
[saveFolderPanel setCanChooseFiles: NO];
[saveFolderPanel setCanSelectHiddenExtension: NO];