OSDN Git Service

58e950b5825e8d93e32d5c9c94862bc248bed379
[handbrake-jp/handbrake-jp-git.git] / macosx / HBPresets.m
1 /*  HBPresets.m $
2
3    This file is part of the HandBrake source code.
4    Homepage: <http://handbrake.fr/>.
5    It may be used under the terms of the GNU General Public License. */
6
7 #import "HBPresets.h"
8
9 @implementation HBPresets
10 - (id)init 
11 {
12     self = [super init];
13    return self;
14 }
15
16 /* Called by -addFactoryPresets in Controller.mm */
17 - (NSMutableArray *) generateBuiltinPresets: (NSMutableArray *) UserPresets
18 {
19     /* We receive the user presets array of dictionaries from controller.mm */
20     /* We re-create new built in presets programmatically and add them to our presets array */
21     
22     /* Note: the built in presets will *not* sort themselves alphabetically, so they will
23      * appear in the order you create them
24      */
25     /* Built in preset folders at the root of the hierarchy */
26     [UserPresets addObject:[self createApplePresetFolder]];
27     [UserPresets addObject:[self createRegularPresetFolder]];
28     [UserPresets addObject:[self createLegacyPresetFolder]];
29     
30     /* Independent presets at the root hierarchy level would go here */
31     
32     /* return the newly regenerated preset array back to Controller.mm */
33     return UserPresets;
34 }
35
36 #pragma mark -
37
38 #pragma mark Built In Preset Folder Definitions
39
40 - (NSDictionary *)createApplePresetFolder
41 {
42     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
43 /*Set whether or not this is a folder, 1 is bool for folder*/
44     [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
45
46
47     /* Get the New Preset Name from the field in the AddPresetPanel */
48     [preset setObject:@"Apple" forKey:@"PresetName"];
49
50     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
51     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
52
53     /*Set whether or not this is default, at creation set to 0*/
54     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
55     
56     /* Lets initalize the child array of dictionaries for folders, this
57      is an array of dictionaries much like the root level of presets and
58      may contain folders and presets alike, etc.*/
59     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
60     /* we actually call the methods for the nests here */
61     [childrenArray addObject:[self createAppleUniversalPreset]];
62     [childrenArray addObject:[self createIpodLowPreset]];
63     [childrenArray addObject:[self createiPhonePreset]];
64     [childrenArray addObject:[self createiPadPreset]];
65     [childrenArray addObject:[self createAppleTVPreset]];
66
67     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
68     
69     [childrenArray autorelease];
70
71
72
73     [preset autorelease];
74     return preset;
75 }
76
77 - (NSDictionary *)createRegularPresetFolder
78 {
79     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
80 /*Set whether or not this is a folder, 1 is bool for folder*/
81     [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
82
83
84     /* Get the New Preset Name from the field in the AddPresetPanel */
85     [preset setObject:@"Regular" forKey:@"PresetName"];
86
87     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
88     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
89
90     /*Set whether or not this is default, at creation set to 0*/
91     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
92     
93     /* Lets initalize the child array of dictionaries for folders, this
94      is an array of dictionaries much like the root level of presets and
95      may contain folders and presets alike, etc.*/
96     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
97     /* we actually call the methods for the nests here */
98     [childrenArray addObject:[self createNormalPreset]];
99     [childrenArray addObject:[self createHighProfilePreset]];
100     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
101     
102     [childrenArray autorelease];
103
104
105
106     [preset autorelease];
107     return preset;
108 }
109
110 - (NSDictionary *)createLegacyPresetFolder
111 {
112     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
113 /*Set whether or not this is a folder, 1 is bool for folder*/
114     [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
115
116
117     /* Get the New Preset Name from the field in the AddPresetPanel */
118     [preset setObject:@"Legacy" forKey:@"PresetName"];
119
120     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
121     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
122
123     /*Set whether or not this is default, at creation set to 0*/
124     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
125     
126     /* Lets initalize the child array of dictionaries for folders, this
127      is an array of dictionaries much like the root level of presets and
128      may contain folders and presets alike, etc.*/
129     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
130     /* we actually call the methods for the nests here */
131     [childrenArray addObject:[self createClassicPreset]];
132     [childrenArray addObject:[self createAppleTVLegacyPreset]];
133     [childrenArray addObject:[self createiPhoneLegacyPreset]];
134     [childrenArray addObject:[self createIpodHighPreset]];
135     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
136     
137     [childrenArray autorelease];
138
139
140
141     [preset autorelease];
142     return preset;
143 }
144
145
146 #pragma mark -
147
148 #pragma mark Built In Preset Definitions
149
150 /* These NSDictionary Buit-In Preset definitions contain all of the settings for one built in preset */
151 /* Note: For now, you can no longer have reference to any main window fields in your key values */
152
153 - (NSDictionary *)createAppleTVPreset
154 {
155     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
156
157     /* Get the New Preset Name from the field in the AddPresetPanel */
158     [preset setObject:@"AppleTV" forKey:@"PresetName"];
159
160     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
161     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
162     /*Set whether or not this is a folder, 1 is bool for folder*/
163     [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
164     /*Set whether or not this is default, at creation set to 0*/
165     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
166
167     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
168     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
169
170     /* Get the New Preset Description from the field in the AddPresetPanel */
171     [preset setObject:@"HandBrake's settings for the AppleTV and 2009's iPhone and iPod Touch lineup. Provides a good balance between quality and file size, and pushes the devices to their limits. Includes Dolby Digital 5.1 AC3 sound for the AppleTV." forKey:@"PresetDescription"];
172
173     /* File Format */
174     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
175
176     /* 64-bit MP4 file */
177     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
178
179     /* Chapter Markers*/
180      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
181
182     /* Video encoder */
183     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
184
185     /* x264 Option String (We can use this to tweak the appleTV output)*/
186     [preset setObject:@"cabac=0:ref=2:me=umh:b-adapt=2:weightb=0:trellis=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500" forKey:@"x264Option"];
187
188     /* Video quality */
189     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
190     [preset setObject:@"700" forKey:@"VideoTargetSize"];
191     [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
192     [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
193
194     /* Video framerate */
195     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
196
197     /* GrayScale */
198     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
199
200     /* 2 Pass Encoding */
201     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
202
203     /* Basic Picture Settings */
204     /* Use Max Picture settings for whatever the dvd is.*/
205     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
206     [preset setObject:[NSNumber numberWithInt:960] forKey:@"PictureWidth"];
207     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
208     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
209     [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
210
211     /* Explicitly set the filters for built-in presets */
212     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
213     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
214     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
215     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
216     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
217     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
218
219     /* Set crop settings here */
220     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
221     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];    
222     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
223     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
224     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
225     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
226
227     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
228      * not listed will be set to "None" and not encoded */
229     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
230     
231     /* Track 1 */        
232     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
233     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
234     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
235     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
236     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
237     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
238     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
239     [audioTrack1Array autorelease];
240     [audioListArray addObject:audioTrack1Array];
241
242     /* Track 2 */
243     NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
244     [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
245     [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
246     [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
247     [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
248     [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
249     /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
250      * the sources bitrate, however we need to initially set the value to something so
251      * the macgui doesnt barf, so 160 seems as good as anything */
252     [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
253     [audioTrack2Array autorelease];
254     [audioListArray addObject:audioTrack2Array];
255
256     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
257
258     /* Subtitles*/
259     [preset setObject:@"None" forKey:@"Subtitles"];
260
261     [preset autorelease];
262     return preset;
263 }
264
265 - (NSDictionary *)createAppleTVLegacyPreset
266 {
267     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
268
269     /* Get the New Preset Name from the field in the AddPresetPanel */
270     [preset setObject:@"AppleTV Legacy" forKey:@"PresetName"];
271
272     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
273     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
274
275     /*Set whether or not this is default, at creation set to 0*/
276     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
277
278     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
279     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
280
281     /* Get the New Preset Description from the field in the AddPresetPanel */
282     [preset setObject:@"HandBrake's deprecated settings for the AppleTV, including Dolby Digital 5.1 AC3 sound. Provides a good balance between quality and file size, and optimizes performance. This is the AppleTV preset from HandBrake 0.9.2, and while it is offered as a service to legacy users, it is no longer supported." forKey:@"PresetDescription"];
283
284     /* File Format */
285     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
286
287     /* 64-bit MP4 file */
288     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
289
290     /* Chapter Markers*/
291      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
292
293     /* Video encoder */
294     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
295
296     /* x264 Option String (We can use this to tweak the appleTV output)*/
297     [preset setObject:@"ref=1:subme=5:me=umh:no-fast-pskip=1:cabac=0:weightb=0:8x8dct=0:trellis=0" forKey:@"x264Option"];
298
299     /* Video quality */
300     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
301     [preset setObject:@"700" forKey:@"VideoTargetSize"];
302     [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
303     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
304
305     /* Video framerate */
306     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
307
308     /* GrayScale */
309     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
310
311     /* 2 Pass Encoding */
312     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
313
314     /* Basic Picture Settings */
315     /* Use Max Picture settings for whatever the dvd is.*/
316     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
317     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
318     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
319     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
320     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
321
322     /* Explicitly set the filters for built-in presets */
323     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
324     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
325     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
326     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
327     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
328     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
329
330     /* Set crop settings here */
331     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
332     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
333     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
334     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
335     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
336     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
337
338     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
339      * not listed will be set to "None" and not encoded */
340     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
341     
342     /* Track 1 */        
343     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
344     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
345     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
346     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
347     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
348     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
349     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
350     [audioTrack1Array autorelease];
351     [audioListArray addObject:audioTrack1Array];
352
353     /* Track 2 */
354     NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
355     [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
356     [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
357     [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
358     [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
359     [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
360     /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
361      * the sources bitrate, however we need to initially set the value to something so
362      * the macgui doesnt barf, so 160 seems as good as anything */
363     [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
364     [audioTrack2Array autorelease];
365     [audioListArray addObject:audioTrack2Array];
366
367     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
368
369     /* Subtitles*/
370     [preset setObject:@"None" forKey:@"Subtitles"];
371
372     [preset autorelease];
373     return preset;
374 }
375
376 - (NSDictionary *)createAppleUniversalPreset
377 {
378     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
379
380     /* Get the New Preset Name from the field in the AddPresetPanel */
381     [preset setObject:@"Universal" forKey:@"PresetName"];
382
383     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
384     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
385     /*Set whether or not this is a folder, 1 is bool for folder*/
386     [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
387     /*Set whether or not this is default, at creation set to 0*/
388     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
389
390     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
391     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
392
393     /* Get the New Preset Description from the field in the AddPresetPanel */
394     [preset setObject:@"HandBrake's universally compatible, full resolution settings for all current Apple devices: iPod (6G and up), iPhone, AppleTV, and Macs" forKey:@"PresetDescription"];
395
396     /* File Format */
397     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
398
399     /* 64-bit MP4 file */
400     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Mp4LargeFile"];
401
402     /* Chapter Markers*/
403      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
404
405     /* Video encoder */
406     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
407
408     /* x264 Option String (We can use this to tweak the appleTV output)*/
409     [preset setObject:@"cabac=0:ref=2:me=umh:bframes=0:8x8dct=0:trellis=0:subme=6" forKey:@"x264Option"];
410
411     /* Video quality */
412     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
413     [preset setObject:@"700" forKey:@"VideoTargetSize"];
414     [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
415     [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
416
417     /* Video framerate */
418     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
419
420     /* GrayScale */
421     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
422
423     /* 2 Pass Encoding */
424     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
425
426     /* Basic Picture Settings */
427     /* Use Max Picture settings for whatever the dvd is.*/
428     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
429     [preset setObject:[NSNumber numberWithInt:720] forKey:@"PictureWidth"];
430     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
431     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
432     [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
433
434     /* Explicitly set the filters for built-in presets */
435     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
436     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
437     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
438     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
439     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
440     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
441
442     /* Set crop settings here */
443     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
444     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];    
445     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
446     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
447     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
448     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
449
450     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
451      * not listed will be set to "None" and not encoded */
452     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
453     
454     /* Track 1 */        
455     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
456     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
457     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
458     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
459     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
460     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
461     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
462     [audioTrack1Array autorelease];
463     [audioListArray addObject:audioTrack1Array];
464
465     /* Track 2 */
466     NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
467     [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
468     [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
469     [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
470     [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
471     [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
472     /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
473      * the sources bitrate, however we need to initially set the value to something so
474      * the macgui doesnt barf, so 160 seems as good as anything */
475     [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
476     [audioTrack2Array autorelease];
477     [audioListArray addObject:audioTrack2Array];
478
479     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
480
481     /* Subtitles*/
482     [preset setObject:@"None" forKey:@"Subtitles"];
483
484     [preset autorelease];
485     return preset;
486 }
487
488 - (NSDictionary *)createiPadPreset
489 {
490     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
491
492     /* Get the New Preset Name from the field in the AddPresetPanel */
493     [preset setObject:@"iPad" forKey:@"PresetName"];
494
495     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
496     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
497     /*Set whether or not this is a folder, 1 is bool for folder*/
498     [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
499     /*Set whether or not this is default, at creation set to 0*/
500     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
501
502     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
503     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
504
505     /* Get the New Preset Description from the field in the AddPresetPanel */
506     [preset setObject:@"HandBrake's preset for the iPad (1st gen) is optimized for viewing on its 1024x768 display." forKey:@"PresetDescription"];
507
508     /* File Format */
509     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
510
511     /* 64-bit MP4 file */
512     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
513
514     /* Chapter Markers*/
515      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
516
517     /* Video encoder */
518     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
519
520     /* x264 Option String (We can use this to tweak the output)*/
521     [preset setObject:@"" forKey:@"x264Option"];
522
523     /* Video quality */
524     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
525     [preset setObject:@"700" forKey:@"VideoTargetSize"];
526     [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
527     [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
528
529     /* Video framerate */
530     [preset setObject:@"29.97 (NTSC Video)" forKey:@"VideoFramerate"];
531     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoFrameratePFR"];
532     
533     /* GrayScale */
534     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
535
536     /* 2 Pass Encoding */
537     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
538
539     /* Basic Picture Settings */
540     /* Use Max Picture settings for whatever the dvd is.*/
541     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
542     [preset setObject:[NSNumber numberWithInt:1024] forKey:@"PictureWidth"];
543     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
544     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
545     [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
546
547     /* Explicitly set the filters for built-in presets */
548     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
549     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
550     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
551     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
552     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
553     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
554
555     /* Set crop settings here */
556     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
557     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];    
558     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
559     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
560     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
561     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
562
563     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
564      * not listed will be set to "None" and not encoded */
565     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
566     
567     /* Track 1 */        
568     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
569     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
570     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
571     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
572     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
573     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
574     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
575     [audioTrack1Array autorelease];
576     [audioListArray addObject:audioTrack1Array];
577
578     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
579
580     /* Subtitles*/
581     [preset setObject:@"None" forKey:@"Subtitles"];
582
583     [preset autorelease];
584     return preset;
585 }
586
587 - (NSDictionary *)createClassicPreset
588 {
589     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
590
591     /* Get the New Preset Name from the field in the AddPresetPanel */
592     [preset setObject:@"Classic" forKey:@"PresetName"];
593
594     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
595     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
596
597     /*Set whether or not this is default, at creation set to 0*/
598     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
599
600     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
601     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
602
603     /* Get the New Preset Description from the field in the AddPresetPanel */
604     [preset setObject:@"HandBrake's traditional, faster, lower-quality settings." forKey:@"PresetDescription"];
605
606     /* File Format */
607     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
608
609     /* Chapter Markers*/
610      [preset setObject:[NSNumber numberWithInt:0] forKey:@"ChapterMarkers"];
611
612     /* Video encoder */
613     [preset setObject:@"MPEG-4 (FFmpeg)" forKey:@"VideoEncoder"];
614
615     /* x264 Option String */
616     [preset setObject:@"" forKey:@"x264Option"];
617
618     /* Video quality */
619     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
620     [preset setObject:@"700"  forKey:@"VideoTargetSize"];
621     [preset setObject:@"1000" forKey:@"VideoAvgBitrate"];
622     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
623
624     /* Video framerate */
625     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
626
627     /* GrayScale */
628     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
629
630     /* 2 Pass Encoding */
631     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
632
633     /*Picture Settings*/
634     /* Use Max Picture settings for whatever the dvd is.*/
635     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
636     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
637     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
638     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
639     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
640     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
641
642     /* Explicitly set the filters for built-in presets */
643     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
644     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
645     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
646     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
647     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
648     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
649
650     /* Set crop settings here */
651     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
652     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
653     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
654     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
655     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
656     
657     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
658      * not listed will be set to "None" and not encoded */
659     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
660     
661     /* Track 1 */        
662     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
663     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
664     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
665     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
666     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
667     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
668     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
669     [audioTrack1Array autorelease];
670     [audioListArray addObject:audioTrack1Array];
671
672     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
673
674     /* Subtitles*/
675     [preset setObject:@"None" forKey:@"Subtitles"];
676
677     [preset autorelease];
678     return preset;
679 }
680
681 - (NSDictionary *)createHighProfilePreset
682 {
683     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
684
685     /* Get the New Preset Name from the field in the AddPresetPanel */
686     [preset setObject:@"High Profile" forKey:@"PresetName"];
687
688     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
689     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
690
691     /*Set whether or not this is default, at creation set to 0*/
692     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
693
694     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
695     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
696
697     /* Get the New Preset Description from the field in the AddPresetPanel */
698     [preset setObject:@"HandBrake's general-purpose preset for High Profile H.264 video, with all the bells and whistles." forKey:@"PresetDescription"];
699
700     /* File Format */
701     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
702
703     /* Chapter Markers*/
704      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
705
706     /* Video encoder */
707     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
708
709     /* x264 Option String */
710     [preset setObject:@"b-adapt=2:rc-lookahead=50" forKey:@"x264Option"];
711
712     /* Video quality */
713     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
714     [preset setObject:@"700" forKey:@"VideoTargetSize"];
715     [preset setObject:@"1800" forKey:@"VideoAvgBitrate"];
716     [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
717
718     /* Video framerate */
719     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
720
721     /* GrayScale */
722     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
723
724     /* 2 Pass Encoding */
725     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
726     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTurboTwoPass"];
727
728     /*Picture Settings*/
729     /* Use Max Picture settings for whatever the dvd is.*/
730     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
731     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
732     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
733     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
734     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
735     [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
736
737     /* Explicitly set the filters for built-in presets */
738     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
739     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureDecombDeinterlace"];
740     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
741     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
742     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
743     [preset setObject:[NSNumber numberWithInt:2] forKey:@"PictureDetelecine"];
744     [preset setObject:[NSNumber numberWithInt:2] forKey:@"PictureDecomb"];
745
746     /* Set crop settings here */
747     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
748     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
749     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
750     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
751     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
752
753     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
754      * not listed will be set to "None" and not encoded */
755     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
756     
757     /* Track 1 */        
758     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
759     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
760     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
761     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
762     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
763     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
764     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
765     [audioTrack1Array autorelease];
766     [audioListArray addObject:audioTrack1Array];
767
768     /* Track 2 */
769     NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
770     [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
771     [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
772     [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
773     [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
774     [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
775     /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
776      * the sources bitrate, however we need to initially set the value to something so
777      * the macgui doesnt barf, so 160 seems as good as anything */
778     [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
779     [audioTrack2Array autorelease];
780     [audioListArray addObject:audioTrack2Array];
781
782     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
783
784     /* Subtitles*/
785     [preset setObject:@"None" forKey:@"Subtitles"];
786
787     [preset autorelease];
788     return preset;
789 }
790
791 - (NSDictionary *)createiPhonePreset
792 {
793     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
794
795     /* Get the New Preset Name from the field in the AddPresetPanel */
796     [preset setObject:@"iPhone & iPod Touch" forKey:@"PresetName"];
797
798     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
799     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
800
801     /*Set whether or not this is default, at creation set to 0*/
802     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
803
804     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
805     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
806
807     /* Get the New Preset Description from the field in the AddPresetPanel */
808     [preset setObject:@"HandBrake's settings for all iPhones and iPod Touches going back to the original iPhone 2G." forKey:@"PresetDescription"];
809
810     /* File Format */
811     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
812
813     /* Chapter Markers*/
814      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
815
816     /* Video encoder */
817     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
818     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Mp4iPodCompatible"];
819     /* x264 Option String */
820     [preset setObject:@"cabac=0:ref=2:me=umh:bframes=0:subme=6:8x8dct=0:trellis=0" forKey:@"x264Option"];
821
822     /* Video quality */
823     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
824     [preset setObject:@"700" forKey:@"VideoTargetSize"];
825     [preset setObject:@"960" forKey:@"VideoAvgBitrate"];
826     [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
827
828     /* Video framerate */
829     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
830
831     /* GrayScale */
832     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
833
834     /* 2 Pass Encoding */
835     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
836
837     /*Picture Settings*/
838     /* Use a width of 480 for the iPhone*/
839     [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
840     [preset setObject:[NSNumber numberWithInt:480] forKey:@"PictureWidth"];
841     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
842     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
843     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
844
845     /* Explicitly set the filters for built-in presets */
846     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
847     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
848     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
849     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
850     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
851     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
852
853     /* Set crop settings here */
854     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
855     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
856     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
857     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
858     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
859     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
860
861     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
862      * not listed will be set to "None" and not encoded */
863     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
864     
865     /* Track 1 */        
866     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
867     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
868     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
869     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
870     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
871     [audioTrack1Array setObject:@"128" forKey:@"AudioBitrate"];
872     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
873     [audioTrack1Array autorelease];
874     [audioListArray addObject:audioTrack1Array];
875
876     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
877
878     /* Subtitles*/
879     [preset setObject:@"None" forKey:@"Subtitles"];
880
881     [preset autorelease];
882     return preset;
883 }
884
885 - (NSDictionary *)createiPhoneLegacyPreset
886 {
887     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
888
889     /* Get the New Preset Name from the field in the AddPresetPanel */
890     [preset setObject:@"iPhone Legacy" forKey:@"PresetName"];
891
892     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
893     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
894
895     /*Set whether or not this is default, at creation set to 0*/
896     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
897
898     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
899     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
900
901     /* Get the New Preset Description from the field in the AddPresetPanel */
902     [preset setObject:@"HandBrake's deprecated settings for the iPhone and iPod Touch. This is the iPhone preset from HandBrake 0.9.2, and while it is offered as a service to legacy users, it is no longer supported." forKey:@"PresetDescription"];
903
904     /* File Format */
905     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
906
907     /* Chapter Markers*/
908      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
909
910     /* Video encoder */
911     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
912     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
913     /* x264 Option String */
914     [preset setObject:@"level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:bframes=0:subme=6:8x8dct=0:trellis=0" forKey:@"x264Option"];
915
916     /* Video quality */
917     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
918     [preset setObject:@"700" forKey:@"VideoTargetSize"];
919     [preset setObject:@"960" forKey:@"VideoAvgBitrate"];
920     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
921
922     /* Video framerate */
923     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
924
925     /* GrayScale */
926     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
927
928     /* 2 Pass Encoding */
929     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
930
931     /*Picture Settings*/
932     /* Use a width of 480 for the iPhone*/
933     [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
934     [preset setObject:[NSNumber numberWithInt:480] forKey:@"PictureWidth"];
935     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
936     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
937     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
938
939     /* Explicitly set the filters for built-in presets */
940     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
941     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
942     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
943     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
944     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
945     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
946
947     /* Set crop settings here */
948     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
949     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
950     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
951     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
952     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
953     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
954
955     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
956      * not listed will be set to "None" and not encoded */
957     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
958     
959     /* Track 1 */        
960     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
961     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
962     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
963     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
964     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
965     [audioTrack1Array setObject:@"128" forKey:@"AudioBitrate"];
966     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
967     [audioTrack1Array autorelease];
968     [audioListArray addObject:audioTrack1Array];
969
970     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
971
972     /* Subtitles*/
973     [preset setObject:@"None" forKey:@"Subtitles"];
974
975     [preset autorelease];
976     return preset;
977 }
978
979 - (NSDictionary *)createIpodHighPreset
980 {
981     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
982
983     /* Get the New Preset Name from the field in the AddPresetPanel */
984     [preset setObject:@"iPod Legacy" forKey:@"PresetName"];
985
986     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
987     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
988
989     /*Set whether or not this is default, at creation set to 0*/
990     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
991
992     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
993     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
994
995     /* Get the New Preset Description from the field in the AddPresetPanel */
996     [preset setObject:@"HandBrake's high resolution settings for older 5 and 5.5G iPods. Good video quality, great for viewing on a TV using your iPod. This is the iPod High-Rez preset from 0.9.2." forKey:@"PresetDescription"];
997
998     /* File Format */
999     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1000
1001     /* Chapter Markers*/
1002      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1003
1004     /* Video encoder */
1005     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1006     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
1007     /* x264 Option String */
1008     [preset setObject:@"level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subme=6:8x8dct=0:trellis=0" forKey:@"x264Option"];
1009
1010     /* Video quality */
1011     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1012     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1013     [preset setObject:@"1500" forKey:@"VideoAvgBitrate"];
1014     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1015
1016     /* Video framerate */
1017     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1018
1019     /* GrayScale */
1020     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1021
1022     /* 2 Pass Encoding */
1023     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1024
1025     /*Picture Settings*/
1026     /* Use a width of 640 for iPod TV-out */
1027     [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
1028     [preset setObject:[NSNumber numberWithInt:640] forKey:@"PictureWidth"];
1029     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1030     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
1031     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
1032
1033     /* Explicitly set the filters for built-in presets */
1034     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1035     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1036     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1037     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1038     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1039     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1040
1041     /* Set crop settings here */
1042     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1043     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1044     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1045     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1046     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1047     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1048
1049     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1050      * not listed will be set to "None" and not encoded */
1051     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
1052     
1053     /* Track 1 */        
1054     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
1055     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
1056     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
1057     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
1058     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
1059     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
1060     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
1061     [audioTrack1Array autorelease];
1062     [audioListArray addObject:audioTrack1Array];
1063
1064     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
1065
1066     /* Subtitles*/
1067     [preset setObject:@"None" forKey:@"Subtitles"];
1068
1069     [preset autorelease];
1070     return preset;
1071 }
1072
1073 - (NSDictionary *)createIpodLowPreset
1074 {
1075     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1076
1077     /* Get the New Preset Name from the field in the AddPresetPanel */
1078     [preset setObject:@"iPod" forKey:@"PresetName"];
1079
1080     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1081     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1082
1083     /*Set whether or not this is default, at creation set to 0*/
1084     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1085
1086     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1087     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1088
1089     /* Get the New Preset Description from the field in the AddPresetPanel */
1090     [preset setObject:@"HandBrake's low resolution settings for the iPod (5G and up). Optimized for great playback on the iPod screen, with smaller file size." forKey:@"PresetDescription"];
1091
1092     /* File Format */
1093     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1094
1095     /* Chapter Markers*/
1096      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1097
1098     /* Video encoder */
1099     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1100     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
1101     /* x264 Option String */
1102     [preset setObject:@"level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subme=6:8x8dct=0:trellis=0" forKey:@"x264Option"];
1103
1104     /* Video quality */
1105     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1106     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1107     [preset setObject:@"700" forKey:@"VideoAvgBitrate"];
1108     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1109
1110     /* Video framerate */
1111     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1112
1113     /* GrayScale */
1114     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1115
1116     /* 2 Pass Encoding */
1117     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1118
1119     /*Picture Settings*/
1120     /* Use a width of 320 for the iPod screen */
1121     [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
1122     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1123     [preset setObject:[NSNumber numberWithInt:320] forKey:@"PictureWidth"];
1124     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1125     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
1126     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
1127
1128     /* Explicitly set the filters for built-in presets */
1129     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1130     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1131     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1132     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1133     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1134     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1135
1136     /* Set crop settings here */
1137     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1138     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1139     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1140     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1141     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1142
1143     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1144      * not listed will be set to "None" and not encoded */
1145     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
1146     
1147     /* Track 1 */        
1148     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
1149     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
1150     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
1151     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
1152     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
1153     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
1154     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
1155     [audioTrack1Array autorelease];
1156     [audioListArray addObject:audioTrack1Array];
1157
1158     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
1159
1160     /* Subtitles*/
1161     [preset setObject:@"None" forKey:@"Subtitles"];
1162
1163     [preset autorelease];
1164     return preset;
1165 }
1166
1167 - (NSDictionary *)createNormalPreset
1168 {
1169     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1170
1171     /* Get the New Preset Name from the field in the AddPresetPanel */
1172     [preset setObject:@"Normal" forKey:@"PresetName"];
1173
1174     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1175     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1176
1177     /*Set whether or not this is default, at creation set to 0*/
1178     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Default"];
1179
1180     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1181     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1182
1183     /* Get the New Preset Description from the field in the AddPresetPanel */
1184     [preset setObject:@"HandBrake's normal, default settings." forKey:@"PresetDescription"];
1185
1186     /* File Format */
1187     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1188
1189     /* Chapter Markers*/
1190      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1191
1192     /* Video encoder */
1193     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1194
1195     /* x264 Option String */
1196     [preset setObject:@"ref=2:bframes=2:subme=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0" forKey:@"x264Option"];
1197
1198     /* Video quality */
1199     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
1200     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1201     [preset setObject:@"1500" forKey:@"VideoAvgBitrate"];
1202     [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
1203
1204     /* Video framerate */
1205     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1206
1207     /* GrayScale */
1208     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1209
1210     /* 2 Pass Encoding */
1211     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1212     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTurboTwoPass"];
1213
1214     /*Picture Settings*/
1215     /* Use Max Picture settings for whatever the dvd is.*/
1216     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
1217     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1218     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
1219     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1220     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
1221     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
1222
1223     /* Explicitly set the filters for built-in presets */
1224     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1225     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1226     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1227     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1228     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1229     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1230
1231     /* Set crop settings here */
1232     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1233     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1234     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1235     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1236     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1237
1238     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1239      * not listed will be set to "None" and not encoded */
1240     NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
1241     
1242     /* Track 1 */        
1243     NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
1244     [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
1245     [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
1246     [audioTrack1Array setObject:@"Dolby Pro Logic II"  forKey:@"AudioMixdown"];
1247     [audioTrack1Array setObject:@"48" forKey:@"AudioSamplerate"];
1248     [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
1249     [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
1250     [audioTrack1Array autorelease];
1251     [audioListArray addObject:audioTrack1Array];
1252
1253     [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
1254
1255     /* Subtitles*/
1256     [preset setObject:@"None" forKey:@"Subtitles"];
1257
1258     [preset autorelease];
1259     return preset;
1260 }
1261
1262
1263 @end