110
109
NSArray * o_mjpg;
111
110
NSArray * o_theo;
112
111
NSArray * o_dummyVid;
113
o_mp1v = [NSArray arrayWithObjects: @"MPEG-1 Video", @"mp1v", \
114
_NS("MPEG-1 Video codec (usable with MPEG PS, MPEG TS, MPEG1, OGG " \
115
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_OGG", @"MUX_RAW", \
116
@"NO", @"NO", @"NO", @"NO", nil];
117
o_mp2v = [NSArray arrayWithObjects: @"MPEG-2 Video", @"mp2v", \
118
_NS("MPEG-2 Video codec (usable with MPEG PS, MPEG TS, MPEG1, OGG " \
119
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_OGG", @"MUX_RAW", \
120
@"NO", @"NO", @"NO", @"NO", nil];
121
o_mp4v = [NSArray arrayWithObjects: @"MPEG-4 Video", @"mp4v", \
122
_NS("MPEG-4 Video codec (useable with MPEG PS, MPEG TS, MPEG1, ASF, " \
123
"MP4, OGG and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", \
112
o_mp1v = [NSArray arrayWithObjects: @"MPEG-1 Video", @"mp1v",
113
_NS("MPEG-1 Video codec (usable with MPEG PS, MPEG TS, MPEG1, OGG "
114
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_OGG", @"MUX_RAW",
115
@"NO", @"NO", @"NO", @"NO", nil];
116
o_mp2v = [NSArray arrayWithObjects: @"MPEG-2 Video", @"mp2v",
117
_NS("MPEG-2 Video codec (usable with MPEG PS, MPEG TS, MPEG1, OGG "
118
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_OGG", @"MUX_RAW",
119
@"NO", @"NO", @"NO", @"NO", nil];
120
o_mp4v = [NSArray arrayWithObjects: @"MPEG-4 Video", @"mp4v",
121
_NS("MPEG-4 Video codec (useable with MPEG PS, MPEG TS, MPEG1, ASF, "
122
"MP4, OGG and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF",
124
123
@"MUX_MP4", @"MUX_OGG", @"MUX_RAW", @"NO", @"NO", nil];
125
o_div1 = [NSArray arrayWithObjects: @"DIVX 1", @"DIV1", \
126
_NS("DivX first version (useable with MPEG TS, MPEG1, ASF and OGG)"), \
127
@"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO", @"NO", \
129
o_div2 = [NSArray arrayWithObjects: @"DIVX 2", @"DIV2", \
130
_NS("DivX second version (useable with MPEG TS, MPEG1, ASF and OGG)"), \
131
@"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO", @"NO", \
133
o_div3 = [NSArray arrayWithObjects: @"DIVX 3", @"DIV3", \
134
_NS("DivX third version (useable with MPEG TS, MPEG1, ASF and OGG)"), \
135
@"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO", @"NO", \
137
o_h263 = [NSArray arrayWithObjects: @"H.263", @"h263", \
138
_NS("H263 is a video codec optimized for videoconference " \
139
"(low rates, useable with MPEG TS)"), @"MUX_TS", @"NO", @"NO", @"NO", \
124
o_div1 = [NSArray arrayWithObjects: @"DIVX 1", @"DIV1",
125
_NS("DivX first version (useable with MPEG TS, MPEG1, ASF and OGG)"),
126
@"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO", @"NO",
128
o_div2 = [NSArray arrayWithObjects: @"DIVX 2", @"DIV2",
129
_NS("DivX second version (useable with MPEG TS, MPEG1, ASF and OGG)"),
130
@"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO", @"NO",
132
o_div3 = [NSArray arrayWithObjects: @"DIVX 3", @"DIV3",
133
_NS("DivX third version (useable with MPEG TS, MPEG1, ASF and OGG)"),
134
@"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO", @"NO",
136
o_h263 = [NSArray arrayWithObjects: @"H.263", @"h263",
137
_NS("H263 is a video codec optimized for videoconference "
138
"(low rates, useable with MPEG TS)"), @"MUX_TS", @"NO", @"NO", @"NO",
140
139
@"NO", @"NO", @"NO", @"NO", @"NO", nil];
141
o_h264 = [NSArray arrayWithObjects: @"H.264", @"h264", \
142
_NS("H264 is a new video codec (useable with MPEG TS and MP4)"), \
143
@"MUX_TS", @"MUX_MP4", @"NO", @"NO", @"NO", @"NO", @"NO", @"NO", \
140
o_h264 = [NSArray arrayWithObjects: @"H.264", @"h264",
141
_NS("H264 is a new video codec (useable with MPEG TS and MP4)"),
142
@"MUX_TS", @"MUX_MP4", @"NO", @"NO", @"NO", @"NO", @"NO", @"NO",
145
o_wmv1 = [NSArray arrayWithObjects: @"WMV 1", @"WMV1", \
146
_NS("WMV (Windows Media Video) 1 (useable with MPEG TS, MPEG1, ASF and " \
147
"OGG)"), @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO", \
148
@"NO", @"NO", @"NO", nil];
149
o_wmv2 = [NSArray arrayWithObjects: @"WMV 2", @"WMV2", \
150
_NS("WMV (Windows Media Video) 2 (useable with MPEG TS, MPEG1, ASF and " \
151
"OGG)"), @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO", \
152
@"NO", @"NO", @"NO", nil];
153
o_mjpg = [NSArray arrayWithObjects: @"MJPEG", @"MJPG", \
154
_NS("MJPEG consists of a series of JPEG pictures (useable with MPEG TS," \
155
" MPEG1, ASF and OGG)"), @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", \
144
o_wmv1 = [NSArray arrayWithObjects: @"WMV 1", @"WMV1",
145
_NS("WMV (Windows Media Video) 1 (useable with MPEG TS, MPEG1, ASF and "
146
"OGG)"), @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO",
147
@"NO", @"NO", @"NO", nil];
148
o_wmv2 = [NSArray arrayWithObjects: @"WMV 2", @"WMV2",
149
_NS("WMV (Windows Media Video) 2 (useable with MPEG TS, MPEG1, ASF and "
150
"OGG)"), @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", @"NO", @"NO",
151
@"NO", @"NO", @"NO", nil];
152
o_mjpg = [NSArray arrayWithObjects: @"MJPEG", @"MJPG",
153
_NS("MJPEG consists of a series of JPEG pictures (useable with MPEG TS,"
154
" MPEG1, ASF and OGG)"), @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG",
156
155
@"NO", @"NO", @"NO", @"NO", @"NO", nil];
157
o_theo = [NSArray arrayWithObjects: @"Theora", @"theo", \
158
_NS("Theora is a free general-purpose codec (useable with MPEG TS " \
159
"and OGG)"), @"MUX_TS", @"MUX_OGG", @"NO", @"NO", @"NO", @"NO", @"NO", \
156
o_theo = [NSArray arrayWithObjects: @"Theora", @"theo",
157
_NS("Theora is a free general-purpose codec (useable with MPEG TS "
158
"and OGG)"), @"MUX_TS", @"MUX_OGG", @"NO", @"NO", @"NO", @"NO", @"NO",
160
159
@"NO", @"NO", nil];
161
o_dummyVid = [NSArray arrayWithObjects: @"Dummy", @"dummy", \
162
_NS("Dummy codec (do not transcode, useable with all encapsulation " \
163
"formats)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_MP4", \
160
o_dummyVid = [NSArray arrayWithObjects: @"Dummy", @"dummy",
161
_NS("Dummy codec (do not transcode, useable with all encapsulation "
162
"formats)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_MP4",
164
163
@"MUX_OGG", @"MUX_WAV", @"MUX_RAW", @"MUX_MOV", nil];
165
o_videoCodecs = [[NSArray alloc] initWithObjects: o_mp1v, o_mp2v, o_mp4v, \
166
o_div1, o_div2, o_div3, o_h263, o_h264, o_wmv1, o_wmv2, o_mjpg, o_theo, \
164
o_videoCodecs = [[NSArray alloc] initWithObjects: o_mp1v, o_mp2v, o_mp4v,
165
o_div1, o_div2, o_div3, o_h263, o_h264, o_wmv1, o_wmv2, o_mjpg, o_theo,
167
166
o_dummyVid, nil];
170
169
NSArray * o_mpga;
177
176
NSArray * o_s16l;
178
177
NSArray * o_fl32;
179
178
NSArray * o_dummyAud;
180
o_mpga = [NSArray arrayWithObjects: @"MPEG Audio", @"mpga", \
181
_NS("The standard MPEG audio (1/2) format (useable with MPEG PS, MPEG TS, " \
182
"MPEG1, ASF, OGG and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", \
179
o_mpga = [NSArray arrayWithObjects: @"MPEG Audio", @"mpga",
180
_NS("The standard MPEG audio (1/2) format (useable with MPEG PS, MPEG TS, "
181
"MPEG1, ASF, OGG and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG",
183
182
@"MUX_ASF", @"MUX_OGG", @"MUX_RAW", @"-1", @"-1", @"-1", nil];
184
o_mp3 = [NSArray arrayWithObjects: @"MP3", @"mp3", \
185
_NS("MPEG Audio Layer 3 (useable with MPEG PS, MPEG TS, MPEG1, ASF, OGG " \
186
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", \
183
o_mp3 = [NSArray arrayWithObjects: @"MP3", @"mp3",
184
_NS("MPEG Audio Layer 3 (useable with MPEG PS, MPEG TS, MPEG1, ASF, OGG "
185
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG",
187
186
@"MUX_RAW", @"-1", @"-1", @"-1", nil];
188
o_mp4a = [NSArray arrayWithObjects: @"MPEG 4 Audio", @"mp4a", \
189
_NS("Audio format for MPEG4 (useable with MPEG TS and MPEG4)"), @"MUX_TS", \
187
o_mp4a = [NSArray arrayWithObjects: @"MPEG 4 Audio", @"mp4a",
188
_NS("Audio format for MPEG4 (useable with MPEG TS and MPEG4)"), @"MUX_TS",
190
189
@"MUX_MP4", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", nil];
191
o_a52 = [NSArray arrayWithObjects: @"A/52", @"a52",
192
_NS("DVD audio format (useable with MPEG PS, MPEG TS, MPEG1, ASF, OGG " \
193
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG", \
190
o_a52 = [NSArray arrayWithObjects: @"A/52", @"a52",
191
_NS("DVD audio format (useable with MPEG PS, MPEG TS, MPEG1, ASF, OGG "
192
"and RAW)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_OGG",
194
193
@"MUX_RAW", @"-1", @"-1", @"-1", nil];
195
o_vorb = [NSArray arrayWithObjects: @"Vorbis", @"vorb", \
196
_NS("Vorbis is a free audio codec (useable with OGG)"), @"MUX_OGG", \
194
o_vorb = [NSArray arrayWithObjects: @"Vorbis", @"vorb",
195
_NS("Vorbis is a free audio codec (useable with OGG)"), @"MUX_OGG",
197
196
@"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", nil];
198
o_flac = [NSArray arrayWithObjects: @"FLAC", @"flac", \
199
_NS("FLAC is a lossless audio codec (useable with OGG and RAW)"), \
200
@"MUX_OGG", @"MUX_RAW", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", \
197
o_flac = [NSArray arrayWithObjects: @"FLAC", @"flac",
198
_NS("FLAC is a lossless audio codec (useable with OGG and RAW)"),
199
@"MUX_OGG", @"MUX_RAW", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1",
202
o_spx = [NSArray arrayWithObjects: @"Speex", @"spx", \
203
_NS("A free audio codec dedicated to compression of voice (useable " \
204
"with OGG)"), @"MUX_OGG", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", \
201
o_spx = [NSArray arrayWithObjects: @"Speex", @"spx",
202
_NS("A free audio codec dedicated to compression of voice (useable "
203
"with OGG)"), @"MUX_OGG", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1",
205
204
@"-1", @"-1", nil];
206
o_s16l = [NSArray arrayWithObjects: @"Uncompressed, integer", @"s16l", \
207
_NS("Uncompressed audio samples (useable with WAV)"), @"MUX_WAV", \
208
@"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", nil];
209
o_fl32 = [NSArray arrayWithObjects: @"Uncompressed, floating point", @"fl32", \
210
_NS("Uncompressed audio samples (useable with WAV)"), @"MUX_WAV", \
211
@"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", nil];
212
o_dummyAud = [NSArray arrayWithObjects: @"Dummy", @"dummy", \
213
_NS("Dummy codec (do not transcode, useable with all encapsulation " \
214
"formats)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_MP4", \
205
o_s16l = [NSArray arrayWithObjects: @"Uncompressed, integer", @"s16l",
206
_NS("Uncompressed audio samples (useable with WAV)"), @"MUX_WAV",
207
@"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", nil];
208
o_fl32 = [NSArray arrayWithObjects: @"Uncompressed, floating point", @"fl32",
209
_NS("Uncompressed audio samples (useable with WAV)"), @"MUX_WAV",
210
@"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", @"-1", nil];
211
o_dummyAud = [NSArray arrayWithObjects: @"Dummy", @"dummy",
212
_NS("Dummy codec (do not transcode, useable with all encapsulation "
213
"formats)"), @"MUX_PS", @"MUX_TS", @"MUX_MPEG", @"MUX_ASF", @"MUX_MP4",
215
214
@"MUX_OGG", @"MUX_RAW", @"MUX_MOV", @"MUX_WAV", nil];
216
o_audioCodecs = [[NSArray alloc] initWithObjects: o_mpga, o_mp3, o_mp4a, \
215
o_audioCodecs = [[NSArray alloc] initWithObjects: o_mpga, o_mp3, o_mp4a,
217
216
o_a52, o_vorb, o_flac, o_spx, o_s16l, o_fl32, o_dummyAud, nil];
255
254
NSArray * o_udp_multi;
256
255
NSArray * o_rtp_uni;
257
256
NSArray * o_rtp_multi;
258
o_http = [NSArray arrayWithObjects: @"http", @"HTTP", _NS("Enter the local " \
259
"addresses you want to listen requests on. Do not enter anything if " \
260
"you want to listen on all the network interfaces. This is generally " \
261
"the best thing to do. Other computers can then access the stream at " \
262
"http://yourip:8080 by default.") , _NS("Use this to stream to several " \
257
o_http = [NSArray arrayWithObjects: @"http", @"HTTP", _NS("Enter the local "
258
"addresses you want to listen requests on. Do not enter anything if "
259
"you want to listen on all the network interfaces. This is generally "
260
"the best thing to do. Other computers can then access the stream at "
261
"http://yourip:8080 by default.") , _NS("Use this to stream to several "
263
262
"computers. This method is not the most efficient, as the server needs "\
264
263
"to send the stream several times, but generally the most compatible"), nil];
265
o_mms = [NSArray arrayWithObjects: @"mmsh", @"MMS", _NS("Enter the local " \
266
"addresses you want to listen requests on. Do not enter anything if " \
267
"you want to listen on all the network interfaces. This is generally " \
268
"the best thing to do. Other computers can then access the stream at " \
269
"mms://yourip:8080 by default."), _NS("Use this to stream to several " \
270
"computers using the Microsoft MMS protocol. This protocol is used as " \
271
"transport method by many Microsoft's softwares. Note that only a " \
272
"small part of the MMS protocol is supported (MMS encapsulated in " \
264
o_mms = [NSArray arrayWithObjects: @"mmsh", @"MMS", _NS("Enter the local "
265
"addresses you want to listen requests on. Do not enter anything if "
266
"you want to listen on all the network interfaces. This is generally "
267
"the best thing to do. Other computers can then access the stream at "
268
"mms://yourip:8080 by default."), _NS("Use this to stream to several "
269
"computers using the Microsoft MMS protocol. This protocol is used as "
270
"transport method by many Microsoft's softwares. Note that only a "
271
"small part of the MMS protocol is supported (MMS encapsulated in "
273
272
"HTTP)." ), nil];
274
o_udp_uni = [NSArray arrayWithObjects: @"udp", @"UDP-Unicast", _NS("Enter " \
275
"the address of the computer to stream to."), _NS("Use this to stream " \
273
o_udp_uni = [NSArray arrayWithObjects: @"udp", @"UDP-Unicast", _NS("Enter "
274
"the address of the computer to stream to."), _NS("Use this to stream "
276
275
"to a single computer."), nil];
277
o_udp_multi = [NSArray arrayWithObjects: @"udp", @"UDP-Multicast", _NS("Enter " \
278
"the multicast address to stream to in this field. This must be an IP " \
279
"address between 224.0.0.0 and 239.255.255.255. For a private use, " \
280
"enter an address beginning with 239.255."), _NS("Use this to stream " \
281
"to a dynamic group of computers on a multicast-enabled network. This " \
282
"is the most efficient method to stream to several computers, but it " \
276
o_udp_multi = [NSArray arrayWithObjects: @"udp", @"UDP-Multicast", _NS("Enter "
277
"the multicast address to stream to in this field. This must be an IP "
278
"address between 224.0.0.0 and 239.255.255.255. For a private use, "
279
"enter an address beginning with 239.255."), _NS("Use this to stream "
280
"to a dynamic group of computers on a multicast-enabled network. This "
281
"is the most efficient method to stream to several computers, but it "
283
282
"won't work over the Internet."), nil];
284
o_rtp_uni = [NSArray arrayWithObjects: @"rtp", @"RTP-Unicast", _NS("Enter the " \
285
"address of the computer to stream to.") , _NS("Use this to stream " \
283
o_rtp_uni = [NSArray arrayWithObjects: @"rtp", @"RTP-Unicast", _NS("Enter the "
284
"address of the computer to stream to.") , _NS("Use this to stream "
286
285
"to a single computer. RTP headers will be added to the stream"), nil];
287
o_rtp_multi = [NSArray arrayWithObjects: @"rtp", @"RTP-Multicast", _NS("Enter " \
288
"the multicast address to stream to in this field. This must be an IP " \
289
"address between 224.0.0.0 and 239.255.255.255. For a private use, " \
290
"enter an address beginning with 239.255."), _NS("Use this to stream " \
291
"to a dynamic group of computers on a multicast-enabled network. This " \
292
"is the most efficient method to stream to several computers, but it " \
286
o_rtp_multi = [NSArray arrayWithObjects: @"rtp", @"RTP-Multicast", _NS("Enter "
287
"the multicast address to stream to in this field. This must be an IP "
288
"address between 224.0.0.0 and 239.255.255.255. For a private use, "
289
"enter an address beginning with 239.255."), _NS("Use this to stream "
290
"to a dynamic group of computers on a multicast-enabled network. This "
291
"is the most efficient method to stream to several computers, but it "
293
292
"won't work over Internet. RTP headers will be added to the stream"), nil];
294
o_strmgMthds = [[NSArray alloc] initWithObjects: o_http, o_mms, \
293
o_strmgMthds = [[NSArray alloc] initWithObjects: o_http, o_mms,
295
294
o_udp_uni, o_udp_multi, o_rtp_uni, o_rtp_multi, nil];
367
324
/* page one ("Hello") */
368
325
[o_t1_txt_title setStringValue: _NS("Streaming/Transcoding Wizard")];
369
[o_t1_txt_text setStringValue: _NS("This wizard allows to configure " \
326
[o_t1_txt_text setStringValue: _NS("This wizard allows to configure "
370
327
"simple streaming or transcoding setups.")];
371
328
[o_t1_btn_mrInfo_strmg setTitle: _NS("More Info")];
372
329
[o_t1_btn_mrInfo_trnscd setTitle: _NS("More Info")];
373
[o_t1_txt_notice setStringValue: _NS("This wizard only gives access to " \
374
"a small subset of VLC's streaming and transcoding capabilities. " \
375
"The Open and 'Saving/Streaming' dialogs will give access to more " \
330
[o_t1_txt_notice setStringValue: _NS("This wizard only gives access to "
331
"a small subset of VLC's streaming and transcoding capabilities. "
332
"The Open and 'Saving/Streaming' dialogs will give access to more "
377
[[o_t1_matrix_strmgOrTrnscd cellAtRow:0 column:0] setTitle: _NS("Stream " \
379
[[o_t1_matrix_strmgOrTrnscd cellAtRow:1 column:0] setTitle: _NS("" \
380
"Transcode/Save to file")];
334
[[o_t1_matrix_strmgOrTrnscd cellAtRow:0 column:0] setTitle:
335
_NS("Stream to network")];
336
[[o_t1_matrix_strmgOrTrnscd cellAtRow:1 column:0] setTitle:
337
_NS("Transcode/Save to file")];
382
339
/* page two ("Input") */
383
340
[o_t2_title setStringValue: _NS("Choose input")];
384
341
[o_t2_text setStringValue: _NS("Choose here your input stream.")];
385
[[o_t2_matrix_inputSourceType cellAtRow:0 column:0] setTitle: \
342
[[o_t2_matrix_inputSourceType cellAtRow:0 column:0] setTitle:
386
343
_NS("Select a stream")];
387
[[o_t2_matrix_inputSourceType cellAtRow:1 column:0] setTitle: \
344
[[o_t2_matrix_inputSourceType cellAtRow:1 column:0] setTitle:
388
345
_NS("Existing playlist item")];
389
346
[o_t2_btn_chooseFile setTitle: _NS("Choose...")];
390
[[[o_t2_tbl_plst tableColumnWithIdentifier:@"1"] headerCell] \
347
[[[o_t2_tbl_plst tableColumnWithIdentifier:@"1"] headerCell]
391
348
setStringValue: _NS("Title")];
392
[[[o_t2_tbl_plst tableColumnWithIdentifier:@"2"] headerCell] \
349
[[[o_t2_tbl_plst tableColumnWithIdentifier:@"2"] headerCell]
393
350
setStringValue: _NS("Author")];
394
351
[o_t2_box_prtExtrct setTitle: _NS("Partial Extract")];
395
352
[o_t2_ckb_enblPartExtrct setTitle: _NS("Enable")];
396
[o_t2_ckb_enblPartExtrct setToolTip: _NS("This can be used to read only a "\
397
"part of the stream. It must be possible to control the incoming "\
398
"stream (for example, a file or a disc, but not an UDP network stream.) " \
353
[o_t2_ckb_enblPartExtrct setToolTip: _NS("This can be used to read only a "
354
"part of the stream. It must be possible to control the incoming "
355
"stream (for example, a file or a disc, but not an UDP network stream.) "
399
356
"The starting and ending times can be given in seconds.")];
400
357
[o_t2_txt_prtExtrctFrom setStringValue: _NS("From")];
401
358
[o_t2_txt_prtExtrctTo setStringValue: _NS("To")];
403
360
/* page three ("Streaming 1") */
404
361
[o_t3_txt_title setStringValue: _NS("Streaming")];
405
[o_t3_txt_text setStringValue: _NS("This page allows to select how " \
362
[o_t3_txt_text setStringValue: _NS("This page allows to select how "
406
363
"the input stream will be sent.")];
407
364
[o_t3_box_dest setTitle: _NS("Destination")];
408
365
[o_t3_box_strmgMthd setTitle: _NS("Streaming method")];
409
[o_t3_txt_destInfo setStringValue: _NS("Address of the computer " \
366
[o_t3_txt_destInfo setStringValue: _NS("Address of the computer "
410
367
"to stream to.")];
411
368
[[o_t3_matrix_stmgMhd cellAtRow:0 column:0] setTitle: _NS("UDP Unicast")];
412
369
[[o_t3_matrix_stmgMhd cellAtRow:0 column:1] setTitle: _NS("UDP Multicast")];
413
[o_t3_txt_strgMthdInfo setStringValue: _NS("Use this to stream to a single " \
370
[o_t3_txt_strgMthdInfo setStringValue: _NS("Use this to stream to a single "
416
373
/* page four ("Transcode 1") */
417
374
[o_t4_title setStringValue: _NS("Transcode")];
418
[o_t4_text setStringValue: _NS("This page allows to change the compression " \
419
"format of the audio or video tracks. To change only " \
375
[o_t4_text setStringValue: _NS("This page allows to change the compression "
376
"format of the audio or video tracks. To change only "
420
377
"the container format, proceed to next page.")];
421
378
[o_t4_box_audio setTitle: _NS("Audio")];
422
379
[o_t4_box_video setTitle: _NS("Video")];
445
402
[o_t6_btn_mrInfo_sap setTitle: _NS("More Info")];
446
403
[o_t6_ckb_local setTitle: _NS("Local playback")];
447
404
[o_t6_btn_mrInfo_local setTitle: _NS("More Info")];
448
[o_t6_ckb_soverlay setTitle: _NS("Add subtitles to transcoded video")];
405
[o_t6_ckb_soverlay setTitle: _NS("Add Subtitles to transcoded video")];
450
407
/* page seven ("Transcode 2") */
451
408
[o_t7_title setStringValue: _NS("Additional transcode options")];
452
[o_t7_text setStringValue: _NS("In this page, a few " \
409
[o_t7_text setStringValue: _NS("In this page, a few "
453
410
"additional transcoding parameters can be set.")];
454
411
[o_t7_txt_saveFileTo setStringValue: _NS("Select the file to save to")];
455
412
[o_t7_btn_chooseFile setTitle: _NS("Choose...")];
456
413
[o_t7_ckb_local setTitle: _NS("Local playback")];
457
[o_t7_ckb_soverlay setTitle: _NS("Add subtitles to transcoded video")];
458
[o_t7_ckb_soverlay setToolTip: _NS("Adds available subtitles directly to " \
459
"the video. These cannot be disabled " \
460
"by the receiving user as they become " \
414
[o_t7_ckb_soverlay setTitle: _NS("Add Subtitles to transcoded video")];
415
[o_t7_ckb_soverlay setToolTip: _NS("Adds available subtitles directly to "
416
"the video. These cannot be disabled "
417
"by the receiving user as they become "
461
418
"part of the image.")];
462
419
[o_t7_btn_mrInfo_local setTitle: _NS("More Info")];
464
421
/* page eight ("Summary") */
465
[o_t8_txt_text setStringValue: _NS("This page lists all the settings." \
422
[o_t8_txt_text setStringValue: _NS("This page lists all the settings."
466
423
"Click \"Finish\" to start streaming or transcoding.")];
467
424
[o_t8_txt_title setStringValue: _NS("Summary")];
468
[o_t8_txt_destination setStringValue: [_NS("Destination") \
469
stringByAppendingString: @":"]];
470
[o_t8_txt_encapFormat setStringValue: [_NS("Encap. format") \
471
stringByAppendingString: @":"]];
472
[o_t8_txt_inputStream setStringValue: [_NS("Input stream") \
473
stringByAppendingString: @":"]];
474
[o_t8_txt_partExtract setStringValue: [_NS("Partial Extract") \
475
stringByAppendingString: @":"]];
476
[o_t8_txt_sap setStringValue: [_NS("SAP Announce") \
477
stringByAppendingString: @":"]];
478
[o_t8_txt_saveFileTo setStringValue: [_NS("Save file to") \
479
stringByAppendingString: @":"]];
480
[o_t8_txt_strmgMthd setStringValue: [_NS("Streaming method") \
481
stringByAppendingString: @":"]];
482
[o_t8_txt_trnscdAudio setStringValue: [_NS("Transcode audio") \
483
stringByAppendingString: @":"]];
484
[o_t8_txt_trnscdVideo setStringValue: [_NS("Transcode video") \
485
stringByAppendingString: @":"]];
486
[o_t8_txt_soverlay setStringValue: [_NS("Include subtitles") \
487
stringByAppendingString: @":"]];
488
[o_t8_txt_local setStringValue: [_NS("Local playback") \
425
[o_t8_txt_destination setStringValue: [_NS("Destination")
426
stringByAppendingString: @":"]];
427
[o_t8_txt_encapFormat setStringValue: [_NS("Encap. format")
428
stringByAppendingString: @":"]];
429
[o_t8_txt_inputStream setStringValue: [_NS("Input stream")
430
stringByAppendingString: @":"]];
431
[o_t8_txt_partExtract setStringValue: [_NS("Partial Extract")
432
stringByAppendingString: @":"]];
433
[o_t8_txt_sap setStringValue: [_NS("SAP Announce")
434
stringByAppendingString: @":"]];
435
[o_t8_txt_saveFileTo setStringValue: [_NS("Save file to")
436
stringByAppendingString: @":"]];
437
[o_t8_txt_strmgMthd setStringValue: [_NS("Streaming method")
438
stringByAppendingString: @":"]];
439
[o_t8_txt_trnscdAudio setStringValue: [_NS("Transcode audio")
440
stringByAppendingString: @":"]];
441
[o_t8_txt_trnscdVideo setStringValue: [_NS("Transcode video")
442
stringByAppendingString: @":"]];
443
[o_t8_txt_soverlay setStringValue: [_NS("Include subtitles")
444
stringByAppendingString: @":"]];
445
[o_t8_txt_local setStringValue: [_NS("Local playback")
489
446
stringByAppendingString: @":"]];
492
- (void)initWithExtractValuesFrom: (NSString *)from to: (NSString *)to \
493
ofItem: (NSString *)item
449
- (void)initWithExtractValuesFrom: (NSString *)from
451
ofItem: (NSString *)item
495
453
[self resetWizard];
496
454
msg_Dbg(VLCIntf, "wizard was reseted");
699
659
if( [[o_t3_fld_address stringValue] isEqualToString: @""] )
701
661
/* complain to the user that "" is no valid dest. */
702
NSBeginInformationalAlertSheet(_NS("No valid destination"), \
703
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil, \
704
_NS("A valid destination has to be selected "\
705
"Enter either a Unicast-IP or a Multicast-IP." \
706
"\n\nIf you don't know what this means, have a look at " \
707
"the VLC Streaming HOWTO and the help texts in this " \
662
NSBeginInformationalAlertSheet(_NS("No valid destination"),
663
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil,
664
_NS("A valid destination has to be selected "
665
"Enter either a Unicast-IP or a Multicast-IP."
666
"\n\nIf you don't know what this means, have a look at "
667
"the VLC Streaming HOWTO and the help texts in this "
710
670
/* FIXME: check whether the entered IP is really valid */
711
[o_userSelections setObject:[o_t3_fld_address stringValue] \
671
[o_userSelections setObject:[o_t3_fld_address stringValue]
712
672
forKey:@"stmgDest"];
713
673
/* let's go to the transcode-1-tab */
714
674
[o_tab_pageHolder selectTabViewItemAtIndex:3];
717
[o_userSelections setObject:[o_t3_fld_address stringValue] \
677
[o_userSelections setObject:[o_t3_fld_address stringValue]
718
678
forKey:@"stmgDest"];
719
679
/* let's go to the transcode-1-tab */
720
680
[o_tab_pageHolder selectTabViewItemAtIndex:3];
723
else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString: \
683
else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
726
/* check whether the user wants to transcode the video-track and store
686
/* check whether the user wants to transcode the video-track and store
727
687
* the related options */
728
688
if ([o_t4_ckb_video state] == NSOnState)
730
690
NSNumber * theNum;
731
691
theNum = [NSNumber numberWithInt:[o_t4_pop_videoCodec indexOfSelectedItem]];
732
692
[o_userSelections setObject:@"YES" forKey:@"trnscdVideo"];
733
[o_userSelections setObject:[o_t4_pop_videoBitrate titleOfSelectedItem] \
693
[o_userSelections setObject:[o_t4_pop_videoBitrate titleOfSelectedItem]
734
694
forKey:@"trnscdVideoBitrate"];
735
695
[o_userSelections setObject:theNum forKey:@"trnscdVideoCodec"];
737
697
[o_userSelections setObject:@"NO" forKey:@"trnscdVideo"];
740
/* check whether the user wants to transcode the audio-track and store
700
/* check whether the user wants to transcode the audio-track and store
741
701
* the related options */
742
702
if ([o_t4_ckb_audio state] == NSOnState)
744
704
NSNumber * theNum;
745
705
theNum = [NSNumber numberWithInt:[o_t4_pop_audioCodec indexOfSelectedItem]];
746
706
[o_userSelections setObject:@"YES" forKey:@"trnscdAudio"];
747
[o_userSelections setObject:[o_t4_pop_audioBitrate titleOfSelectedItem] \
707
[o_userSelections setObject:[o_t4_pop_audioBitrate titleOfSelectedItem]
748
708
forKey:@"trnscdAudioBitrate"];
749
709
[o_userSelections setObject:theNum forKey:@"trnscdAudioCodec"];
773
733
if ([[o_userSelections objectForKey:@"trnscdVideo"] isEqualTo: @"YES"])
775
735
/* we are transcoding both audio and video, so we need to check both deps */
776
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
736
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
777
737
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_PS"])
779
if ([[o_audioCodecs objectAtIndex:[[o_userSelections \
780
objectForKey:@"trnscdAudioCodec"] intValue]] \
739
if ([[o_audioCodecs objectAtIndex:[[o_userSelections
740
objectForKey:@"trnscdAudioCodec"] intValue]]
781
741
containsObject: @"MUX_PS"])
783
743
[[o_t5_matrix_encap cellAtRow:0 column:0] setEnabled:YES];
784
744
[o_t5_matrix_encap selectCellAtRow:0 column:0];
787
if ([[o_videoCodecs objectAtIndex:[[o_userSelections \
747
if ([[o_videoCodecs objectAtIndex:[[o_userSelections
788
748
objectForKey:@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_TS"])
790
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
750
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
791
751
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_TS"])
793
753
[[o_t5_matrix_encap cellAtRow:1 column:0] setEnabled:YES];
794
754
[o_t5_matrix_encap selectCellAtRow:1 column:0];
797
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
757
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
798
758
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MPEG"])
800
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
760
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
801
761
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MPEG"])
803
763
[[o_t5_matrix_encap cellAtRow:2 column:0] setEnabled:YES];
804
764
[o_t5_matrix_encap selectCellAtRow:2 column:0];
807
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
767
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
808
768
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_OGG"])
810
if ([[o_audioCodecs objectAtIndex:[[o_userSelections \
770
if ([[o_audioCodecs objectAtIndex:[[o_userSelections
811
771
objectForKey:@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_OGG"])
813
773
[[o_t5_matrix_encap cellAtRow:3 column:0] setEnabled:YES];
814
774
[o_t5_matrix_encap selectCellAtRow:3 column:0];
817
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
777
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
818
778
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_RAW"])
820
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
780
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
821
781
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_RAW"])
823
783
[[o_t5_matrix_encap cellAtRow:4 column:0] setEnabled:YES];
824
784
[o_t5_matrix_encap selectCellAtRow:4 column:0];
827
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
787
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
828
788
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_ASF"])
830
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
790
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
831
791
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_ASF"])
833
793
[[o_t5_matrix_encap cellAtRow:5 column:0] setEnabled:YES];
834
794
[o_t5_matrix_encap selectCellAtRow:5 column:0];
837
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
797
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
838
798
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_AVI"])
840
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
800
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
841
801
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_AVI"])
843
803
[[o_t5_matrix_encap cellAtRow:6 column:0] setEnabled:YES];
844
804
[o_t5_matrix_encap selectCellAtRow:6 column:0];
847
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
807
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
848
808
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MP4"])
850
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
810
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
851
811
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MP4"])
853
813
[[o_t5_matrix_encap cellAtRow:7 column:0] setEnabled:YES];
854
814
[o_t5_matrix_encap selectCellAtRow:7 column:0];
857
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
817
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
858
818
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MOV"])
860
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
820
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
861
821
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MOV"])
863
823
[[o_t5_matrix_encap cellAtRow:8 column:0] setEnabled:YES];
864
824
[o_t5_matrix_encap selectCellAtRow:8 column:0];
867
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
827
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
868
828
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_WAV"])
870
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
830
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
871
831
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_WAV"])
873
833
[[o_t5_matrix_encap cellAtRow:9 column:0] setEnabled:YES];
880
840
/* we just transcoding the audio */
882
842
/* select formats supported by the audio codec */
883
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
843
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
884
844
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_PS"])
886
846
[[o_t5_matrix_encap cellAtRow:0 column:0] setEnabled:YES];
887
847
[o_t5_matrix_encap selectCellAtRow:0 column:0];
889
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
849
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
890
850
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_TS"])
892
852
[[o_t5_matrix_encap cellAtRow:1 column:0] setEnabled:YES];
893
853
[o_t5_matrix_encap selectCellAtRow:1 column:0];
895
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
855
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
896
856
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MPEG"])
898
858
[[o_t5_matrix_encap cellAtRow:2 column:0] setEnabled:YES];
899
859
[o_t5_matrix_encap selectCellAtRow:2 column:0];
901
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
861
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
902
862
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_OGG"])
904
864
[[o_t5_matrix_encap cellAtRow:3 column:0] setEnabled:YES];
905
865
[o_t5_matrix_encap selectCellAtRow:3 column:0];
907
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
867
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
908
868
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_RAW"])
910
870
[[o_t5_matrix_encap cellAtRow:4 column:0] setEnabled:YES];
911
871
[o_t5_matrix_encap selectCellAtRow:4 column:0];
913
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
873
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
914
874
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_ASF"])
916
876
[[o_t5_matrix_encap cellAtRow:5 column:0] setEnabled:YES];
917
877
[o_t5_matrix_encap selectCellAtRow:5 column:0];
919
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
879
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
920
880
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_AVI"])
922
882
[[o_t5_matrix_encap cellAtRow:6 column:0] setEnabled:YES];
923
883
[o_t5_matrix_encap selectCellAtRow:6 column:0];
925
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
885
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
926
886
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MP4"])
928
888
[[o_t5_matrix_encap cellAtRow:7 column:0] setEnabled:YES];
929
889
[o_t5_matrix_encap selectCellAtRow:7 column:0];
931
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
891
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
932
892
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_MOV"])
934
894
[[o_t5_matrix_encap cellAtRow:8 column:0] setEnabled:YES];
935
895
[o_t5_matrix_encap selectCellAtRow:8 column:0];
937
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey: \
897
if ([[o_audioCodecs objectAtIndex:[[o_userSelections objectForKey:
938
898
@"trnscdAudioCodec"] intValue]] containsObject: @"MUX_WAV"])
940
900
[[o_t5_matrix_encap cellAtRow:9 column:0] setEnabled:YES];
949
909
/* select formats supported by the video-codec */
951
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
911
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
952
912
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_PS"])
954
914
[[o_t5_matrix_encap cellAtRow:0 column:0] setEnabled:YES];
955
915
[o_t5_matrix_encap selectCellAtRow:0 column:0];
957
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
917
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
958
918
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_TS"])
960
920
[[o_t5_matrix_encap cellAtRow:1 column:0] setEnabled:YES];
961
921
[o_t5_matrix_encap selectCellAtRow:1 column:0];
963
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
923
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
964
924
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MPEG"])
966
926
[[o_t5_matrix_encap cellAtRow:2 column:0] setEnabled:YES];
967
927
[o_t5_matrix_encap selectCellAtRow:2 column:0];
969
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
929
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
970
930
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_OGG"])
972
932
[[o_t5_matrix_encap cellAtRow:3 column:0] setEnabled:YES];
973
933
[o_t5_matrix_encap selectCellAtRow:3 column:0];
975
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
935
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
976
936
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_RAW"])
978
938
[[o_t5_matrix_encap cellAtRow:4 column:0] setEnabled:YES];
979
939
[o_t5_matrix_encap selectCellAtRow:4 column:0];
981
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
941
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
982
942
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_ASF"])
984
944
[[o_t5_matrix_encap cellAtRow:5 column:0] setEnabled:YES];
985
945
[o_t5_matrix_encap selectCellAtRow:5 column:0];
987
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
947
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
988
948
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_AVI"])
990
950
[[o_t5_matrix_encap cellAtRow:6 column:0] setEnabled:YES];
991
951
[o_t5_matrix_encap selectCellAtRow:6 column:0];
993
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
953
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
994
954
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MP4"])
996
956
[[o_t5_matrix_encap cellAtRow:7 column:0] setEnabled:YES];
997
957
[o_t5_matrix_encap selectCellAtRow:7 column:0];
999
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
959
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
1000
960
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_MOV"])
1002
962
[[o_t5_matrix_encap cellAtRow:8 column:0] setEnabled:YES];
1003
963
[o_t5_matrix_encap selectCellAtRow:8 column:0];
1005
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey: \
965
if ([[o_videoCodecs objectAtIndex:[[o_userSelections objectForKey:
1006
966
@"trnscdVideoCodec"] intValue]] containsObject: @"MUX_WAV"])
1008
968
[[o_t5_matrix_encap cellAtRow:9 column:0] setEnabled:YES];
1277
1237
/* we don't need to check for existing items because Cocoa
1278
1238
* does that already when we are asking the user for a location
1279
1239
* to save her file */
1280
[o_userSelections setObject: [NSArray arrayWithObject: \
1240
[o_userSelections setObject: [NSArray arrayWithObject:
1281
1241
[o_t7_fld_filePath stringValue]] forKey: @"trnscdFilePath"];
1284
1244
/* include subtitles ? */
1285
[o_userSelections setObject:
1245
[o_userSelections setObject:
1286
1246
[[NSNumber numberWithInt:[o_t7_ckb_soverlay state]] stringValue]
1287
1247
forKey: @"soverlay"];
1289
1249
/* go to "Summary" */
1290
1250
[self showSummary];
1293
else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString: \
1253
else if ([[[o_tab_pageHolder selectedTabViewItem] label] isEqualToString:
1296
1256
intf_thread_t * p_intf = VLCIntf;
1298
playlist_t * p_playlist = (playlist_t *)vlc_object_find( p_intf,
1299
VLC_OBJECT_PLAYLIST, FIND_ANYWHERE);
1258
playlist_t * p_playlist = pl_Yield( p_intf );
1261
int y = [[o_userSelections objectForKey:@"pathToStrm"] count];
1303
int y = [[o_userSelections objectForKey:@"pathToStrm"] count];
1306
/* we need a temp. variable here to work-around a GCC4-bug */
1307
NSString *tempString = [NSString stringWithFormat: \
1308
@"%@ (%i/%i)", _NS("Streaming/Transcoding Wizard"), \
1310
playlist_item_t *p_item = playlist_ItemNew( p_playlist, \
1311
[[[o_userSelections objectForKey:@"pathToStrm"] \
1312
objectAtIndex:x] UTF8String], \
1313
[tempString UTF8String] );
1314
playlist_ItemAddOption( p_item, [[[o_userSelections \
1315
objectForKey:@"opts"] objectAtIndex: x] UTF8String]);
1317
if(! [[o_userSelections objectForKey:@"partExtractFrom"] \
1318
isEqualToString:@""] )
1320
playlist_ItemAddOption( p_item, [[NSString \
1321
stringWithFormat: @"start-time=%@", [o_userSelections \
1322
objectForKey: @"partExtractFrom"]] UTF8String] );
1325
if(! [[o_userSelections objectForKey:@"partExtractTo"] \
1326
isEqualToString:@""] )
1328
playlist_ItemAddOption( p_item, [[NSString \
1329
stringWithFormat: @"stop-time=%@", [o_userSelections \
1330
objectForKey: @"partExtractTo"]] UTF8String] );
1333
playlist_ItemAddOption( p_item, [[NSString stringWithFormat: \
1334
@"ttl=%@", [o_userSelections objectForKey:@"ttl"]] \
1337
playlist_AddItem( p_playlist, p_item, PLAYLIST_STOP, PLAYLIST_END );
1340
/* play the first item and add the others afterwards */
1341
playlist_Control( p_playlist, PLAYLIST_ITEMPLAY, p_item );
1346
playlist_ViewUpdate( p_playlist, VIEW_CATEGORY );
1348
vlc_object_release(p_playlist);
1350
msg_Err( p_intf, "unable to find playlist" );
1264
/* we need a temp. variable here to work-around a GCC4-bug */
1265
NSString *tempString = [NSString stringWithFormat:
1266
@"%@ (%i/%i)", _NS("Streaming/Transcoding Wizard"),
1268
input_item_t *p_input = input_item_New( p_playlist,
1269
[[[o_userSelections objectForKey:@"pathToStrm"]
1270
objectAtIndex:x] UTF8String],
1271
[tempString UTF8String] );
1272
input_item_AddOption( p_input, [[[o_userSelections
1273
objectForKey:@"opts"] objectAtIndex: x] UTF8String]);
1275
if(! [[o_userSelections objectForKey:@"partExtractFrom"]
1276
isEqualToString:@""] )
1278
input_item_AddOption( p_input, [[NSString
1279
stringWithFormat: @"start-time=%@", [o_userSelections
1280
objectForKey: @"partExtractFrom"]] UTF8String] );
1283
if(! [[o_userSelections objectForKey:@"partExtractTo"]
1284
isEqualToString:@""] )
1286
input_item_AddOption( p_input, [[NSString
1287
stringWithFormat: @"stop-time=%@", [o_userSelections
1288
objectForKey: @"partExtractTo"]] UTF8String] );
1291
input_item_AddOption( p_input, [[NSString stringWithFormat:
1292
@"ttl=%@", [o_userSelections objectForKey:@"ttl"]]
1295
/* FIXME: playlist_AddInput() can fail */
1296
playlist_AddInput( p_playlist, p_input, PLAYLIST_STOP,
1297
PLAYLIST_END, true, pl_Unlocked );
1301
/* play the first item and add the others afterwards */
1303
playlist_item_t *p_item = playlist_ItemGetByInput( p_playlist, p_input, pl_Locked );
1304
playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, pl_Locked, NULL,
1309
vlc_gc_decref( p_input );
1313
vlc_object_release( p_playlist );
1353
1315
/* close the window, since we are done */
1354
1316
[o_wizard_window close];
1567
[o_sap_option appendFormat: @"sap,name=\"%s\"", \
1529
[o_sap_option appendFormat: @"sap,name=\"%s\"",
1568
1530
[[o_userSelections objectForKey:@"sapText"] UTF8String]];
1570
[o_opts_string appendFormat: \
1571
@":sout=#%s%sstandard{mux=%s,dst=%s,access=%s,%s}", \
1572
[o_duplicateCmd UTF8String], [o_trnscdCmd UTF8String], \
1573
[[[o_encapFormats objectAtIndex: [[o_userSelections \
1574
objectForKey: @"encapFormat"] intValue]] objectAtIndex:0] \
1575
UTF8String], [[o_userSelections objectForKey: @"stmgDest"] \
1576
UTF8String], [[[o_strmgMthds objectAtIndex: [[o_userSelections \
1577
objectForKey: @"stmgMhd"] intValue]] objectAtIndex:0] \
1578
UTF8String], [o_sap_option UTF8String]];
1532
if( [[o_strmgMthds objectAtIndex: [[o_userSelections objectForKey: @"stmgMhd"] intValue]] objectAtIndex:0] == @"rtp" )
1534
/* RTP is no access out, but a stream out module */
1535
[o_opts_string appendFormat:
1536
@":sout=#%s%srtp{mux=%s,dst=%s,%s}",
1537
[o_duplicateCmd UTF8String], [o_trnscdCmd UTF8String],
1538
[[[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0]
1540
[[o_userSelections objectForKey: @"stmgDest"] UTF8String],
1541
[o_sap_option UTF8String]];
1545
[o_opts_string appendFormat:
1546
@":sout=#%s%sstandard{mux=%s,dst=%s,access=%s,%s}",
1547
[o_duplicateCmd UTF8String], [o_trnscdCmd UTF8String],
1548
[[[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0]
1550
[[o_userSelections objectForKey: @"stmgDest"] UTF8String],
1551
[[[o_strmgMthds objectAtIndex: [[o_userSelections objectForKey: @"stmgMhd"] intValue]] objectAtIndex:0]
1553
[o_sap_option UTF8String]];
1582
1558
/* no SAP, just streaming */
1583
[o_opts_string appendFormat: \
1584
@":sout=#%s%sstandard{mux=%s,dst=%s,access=%s}", \
1585
[o_duplicateCmd UTF8String], [o_trnscdCmd UTF8String], \
1586
[[[o_encapFormats objectAtIndex: [[o_userSelections \
1587
objectForKey: @"encapFormat"] intValue]] objectAtIndex:0] \
1588
UTF8String], [[o_userSelections objectForKey: \
1589
@"stmgDest"] UTF8String], [[[o_strmgMthds objectAtIndex: \
1590
[[o_userSelections objectForKey: @"stmgMhd"] intValue]] \
1591
objectAtIndex:0] UTF8String]];
1559
if( [[o_strmgMthds objectAtIndex: [[o_userSelections objectForKey: @"stmgMhd"] intValue]] objectAtIndex:0] == @"rtp" )
1561
/* RTP is different from the other protocols, as it isn't provided through an access out module anymore */
1562
[o_opts_string appendFormat:
1563
@":sout=#%s%srtp{mux=%s,dst=%s}",
1564
[o_duplicateCmd UTF8String],
1565
[o_trnscdCmd UTF8String],
1566
[[[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0]
1568
[[o_userSelections objectForKey: @"stmgDest"] UTF8String]];
1572
/* all other protocols are cool */
1573
[o_opts_string appendFormat:
1574
@":sout=#%s%sstandard{mux=%s,dst=%s,access=%s}",
1575
[o_duplicateCmd UTF8String],
1576
[o_trnscdCmd UTF8String],
1577
[[[o_encapFormats objectAtIndex: [[o_userSelections objectForKey: @"encapFormat"] intValue]] objectAtIndex:0]
1579
[[o_userSelections objectForKey: @"stmgDest"] UTF8String],
1580
[[[o_strmgMthds objectAtIndex: [[o_userSelections objectForKey: @"stmgMhd"] intValue]] objectAtIndex:0] UTF8String]];
1870
1861
- (IBAction)t6_mrInfo_ttl:(id)sender
1872
1863
/* show a sheet for the help */
1873
NSBeginInformationalAlertSheet(_NS("Time-To-Live (TTL)"), \
1874
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil, \
1875
_NS("This allows to define the TTL (Time-To-Live) of the stream. "\
1876
"This parameter is the maximum number of routers your stream can " \
1877
"go through. If you don't know what it means, or if you want to " \
1864
NSBeginInformationalAlertSheet(_NS("Time-To-Live (TTL)"),
1865
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil,
1866
_NS("This allows to define the TTL (Time-To-Live) of the stream. "
1867
"This parameter is the maximum number of routers your stream can "
1868
"go through. If you don't know what it means, or if you want to "
1878
1869
"stream on your local network only, leave this setting to 1."));
1881
1872
- (IBAction)t6_mrInfo_sap:(id)sender
1883
1874
/* show a sheet for the help */
1884
NSBeginInformationalAlertSheet(_NS("SAP Announce"), \
1885
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil, \
1886
_NS("When streaming using UDP, the streams can be " \
1887
"announced using the SAP/SDP announcing protocol. This " \
1888
"way, the clients won't have to type in the multicast address, it " \
1889
"will appear in their playlist if they enable the SAP extra " \
1890
"interface.\nIf you want to give a name to your stream, enter it " \
1875
NSBeginInformationalAlertSheet(_NS("SAP Announce"),
1876
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil,
1877
_NS("When streaming using UDP, the streams can be "
1878
"announced using the SAP/SDP announcing protocol. This "
1879
"way, the clients won't have to type in the multicast address, it "
1880
"will appear in their playlist if they enable the SAP extra "
1881
"interface.\nIf you want to give a name to your stream, enter it "
1891
1882
"here, else, a default name will be used."));
1894
1885
- (IBAction)t67_mrInfo_local:(id)sender
1896
1887
/* show a sheet for the help */
1897
NSBeginInformationalAlertSheet(_NS("Local playback"), \
1898
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil, \
1899
_NS("When this option is enabled, the stream will be both played " \
1900
"and transcoded/streamed.\n\nNote that this requires much more " \
1888
NSBeginInformationalAlertSheet(_NS("Local playback"),
1889
_NS("OK"), @"", @"", o_wizard_window, nil, nil, nil, nil,
1890
_NS("When this option is enabled, the stream will be both played "
1891
"and transcoded/streamed.\n\nNote that this requires much more "
1901
1892
"CPU power than simple transcoding or streaming."));
1904
1895
- (IBAction)t7_selectTrnscdDestFile:(id)sender
1906
/* provide a save-to-dialogue, so the user can choose a location for
1897
/* provide a save-to-dialogue, so the user can choose a location for
1907
1898
* his/her new file. We take a modified NSOpenPanel to select a folder
1908
1899
* and a plain NSSavePanel to save a single file. */
1910
1901
SEL sel = @selector(t7_getTrnscdDestFile:returnCode:contextInfo:);
1912
1903
if( [[o_userSelections objectForKey:@"pathToStrm"] count] > 1 )
1914
1905
NSOpenPanel * saveFolderPanel = [[NSOpenPanel alloc] init];
1916
1907
[saveFolderPanel setCanChooseDirectories: YES];
1917
1908
[saveFolderPanel setCanChooseFiles: NO];
1918
1909
[saveFolderPanel setCanSelectHiddenExtension: NO];
1919
1910
[saveFolderPanel setCanCreateDirectories: YES];
1920
[saveFolderPanel beginSheetForDirectory:nil file:nil modalForWindow: \
1911
[saveFolderPanel beginSheetForDirectory:nil file:nil modalForWindow:
1921
1912
o_wizard_window modalDelegate:self didEndSelector:sel contextInfo:nil];
1925
1916
NSSavePanel * saveFilePanel = [[NSSavePanel alloc] init];
1927
/* don't use ".ps" as suffix, since the OSX Finder confuses our
1928
* creations with PostScript-files and wants to open them with
1918
/* don't use ".ps" as suffix, since the OSX Finder confuses our
1919
* creations with PostScript-files and wants to open them with
1929
1920
* Preview.app */
1930
NSString * theEncapFormat = [[o_encapFormats objectAtIndex: \
1931
[[o_userSelections objectForKey:@"encapFormat"] intValue]] \
1921
NSString * theEncapFormat = [[o_encapFormats objectAtIndex:
1922
[[o_userSelections objectForKey:@"encapFormat"] intValue]]
1932
1923
objectAtIndex:0];
1933
1924
if( theEncapFormat != @"ps" )
1934
1925
[saveFilePanel setRequiredFileType: theEncapFormat];