OSDN Git Service

WinGui:
[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 createBasicPresetFolder]];
28     [UserPresets addObject:[self createHiProfilePresetFolder]];
29     [UserPresets addObject:[self createGamingConsolesPresetFolder]];
30     
31     /* Independent presets at the root hierarchy level would go here */
32     
33     /* return the newly regenerated preset array back to Controller.mm */
34     return UserPresets;
35 }
36
37 #pragma mark -
38
39 #pragma mark Built In Preset Folder Definitions
40
41 - (NSDictionary *)createApplePresetFolder
42 {
43     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
44 /*Set whether or not this is a folder, 1 is bool for folder*/
45     [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
46
47
48     /* Get the New Preset Name from the field in the AddPresetPanel */
49     [preset setObject:@"Apple" forKey:@"PresetName"];
50
51     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
52     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
53
54     /*Set whether or not this is default, at creation set to 0*/
55     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
56     
57     /* Lets initalize the child array of dictionaries for folders, this
58      is an array of dictionaries much like the root level of presets and
59      may contain folders and presets alike, etc.*/
60     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
61     /* we actually call the methods for the nests here */
62     [childrenArray addObject:[self createAppleUniversalPreset]];
63     [childrenArray addObject:[self createAppleTVPreset]];
64     [childrenArray addObject:[self createAppleIpodFamilyPresetFolder]];
65     [childrenArray addObject:[self createQuickTimePreset]];
66     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
67     
68     [childrenArray autorelease];
69
70
71
72     [preset autorelease];
73     return preset;
74 }
75
76 - (NSDictionary *)createAppleIpodFamilyPresetFolder
77 {
78     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
79 /*Set whether or not this is a folder, 1 is bool for folder*/
80     [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
81
82
83     /* Get the New Preset Name from the field in the AddPresetPanel */
84     [preset setObject:@"iPod & iPhone" forKey:@"PresetName"];
85
86     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
87     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
88
89     /*Set whether or not this is default, at creation set to 0*/
90     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
91     
92     /* Lets initalize the child array of dictionaries for folders, this
93      is an array of dictionaries much like the root level of presets and
94      may contain folders and presets alike, etc.*/
95     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
96     /* we actually call the methods for the nests here */
97     [childrenArray addObject:[self createIpodLowPreset]];
98     [childrenArray addObject:[self createiPhonePreset]];
99     [childrenArray addObject:[self createIpodHighPreset]];
100     
101     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
102     
103     [childrenArray autorelease];
104
105
106
107     [preset autorelease];
108     return preset;
109 }
110
111 - (NSDictionary *)createGamingConsolesPresetFolder
112 {
113     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
114 /*Set whether or not this is a folder, 1 is bool for folder*/
115     [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
116
117
118     /* Get the New Preset Name from the field in the AddPresetPanel */
119     [preset setObject:@"Gaming Consoles" forKey:@"PresetName"];
120
121     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
122     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
123
124     /*Set whether or not this is default, at creation set to 0*/
125     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
126     
127     /* Lets initalize the child array of dictionaries for folders, this
128      is an array of dictionaries much like the root level of presets and
129      may contain folders and presets alike, etc.*/
130     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
131     /* we actually call the methods for the nests here */
132     [childrenArray addObject:[self createPSPPreset]];
133     [childrenArray addObject:[self createPSThreePreset]];
134     [childrenArray addObject:[self create360Preset]];
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 - (NSDictionary *)createBasicPresetFolder
147 {
148     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
149 /*Set whether or not this is a folder, 1 is bool for folder*/
150     [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
151
152
153     /* Get the New Preset Name from the field in the AddPresetPanel */
154     [preset setObject:@"Basic" forKey:@"PresetName"];
155
156     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
157     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
158
159     /*Set whether or not this is default, at creation set to 0*/
160     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
161     
162     /* Lets initalize the child array of dictionaries for folders, this
163      is an array of dictionaries much like the root level of presets and
164      may contain folders and presets alike, etc.*/
165     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
166     /* we actually call the methods for the nests here */
167     [childrenArray addObject:[self createNormalPreset]];
168     [childrenArray addObject:[self createClassicPreset]];
169     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
170     
171     [childrenArray autorelease];
172
173
174
175     [preset autorelease];
176     return preset;
177 }
178
179 - (NSDictionary *)createHiProfilePresetFolder
180 {
181     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
182 /*Set whether or not this is a folder, 1 is bool for folder*/
183     [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
184
185
186     /* Get the New Preset Name from the field in the AddPresetPanel */
187     [preset setObject:@"High Profile" forKey:@"PresetName"];
188
189     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
190     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
191
192     /*Set whether or not this is default, at creation set to 0*/
193     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
194     
195     /* Lets initalize the child array of dictionaries for folders, this
196      is an array of dictionaries much like the root level of presets and
197      may contain folders and presets alike, etc.*/
198     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
199     /* we actually call the methods for the nests here */
200     [childrenArray addObject:[self createAnimationPreset]];
201     [childrenArray addObject:[self createCRFPreset]];
202     [childrenArray addObject:[self createFilmPreset]];
203     [childrenArray addObject:[self createTelevisionPreset]];
204     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
205     
206     [childrenArray autorelease];
207     [preset autorelease];
208     return preset;
209 }
210
211
212 #pragma mark -
213
214 #pragma mark Built In Preset Definitions
215
216 /* These NSDictionary Buit-In Preset definitions contain all of the settings for one built in preset */
217 /* Note: For now, you can no longer have reference to any main window fields in your key values */
218
219 - (NSDictionary *)create360Preset
220 {
221     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
222
223     /* Get the New Preset Name from the field in the AddPresetPanel */
224     [preset setObject:@"Xbox 360" forKey:@"PresetName"];
225
226     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
227     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
228
229     /*Set whether or not this is default, at creation set to 0*/
230     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
231
232     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
233     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
234
235     /* Get the New Preset Description from the field in the AddPresetPanel */
236     [preset setObject:@"HandBrake's settings for the Microsoft Xbox 360." forKey:@"PresetDescription"];
237
238     /* File Format */
239     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
240
241     /* Chapter Markers*/
242      [preset setObject:[NSNumber numberWithInt:0] forKey:@"ChapterMarkers"];
243
244     /* Video encoder */
245     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
246     
247     /* x264 Option String */
248     [preset setObject:@"level=40:ref=2:mixed-refs:bframes=3:weightb:subme=9:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1" forKey:@"x264Option"];
249
250     /* Video quality */
251     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
252     [preset setObject:@"700" forKey:@"VideoTargetSize"];
253     [preset setObject:@"2000" forKey:@"VideoAvgBitrate"];
254     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
255
256     /* Video framerate */
257     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
258
259     /* GrayScale */
260     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
261
262     /* 2 Pass Encoding */
263     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
264
265     /*Picture Settings*/
266     /* Use Max Picture settings for whatever the dvd is.*/
267     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
268     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
269     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
270     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
271     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
272
273     /* Explicitly set the filters for built-in presets */
274     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
275     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
276     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
277     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
278     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
279     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
280
281     /* Set crop settings here */
282     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
283     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
284     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
285     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
286     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
287
288     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
289      * not listed will be set to "None" and not encoded */
290     
291     /* Track 1 */
292     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
293     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
294     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
295     [preset setObject:@"48" forKey:@"Audio1Samplerate"];
296     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
297     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
298     
299     /* Subtitles*/
300     [preset setObject:@"None" forKey:@"Subtitles"];
301
302     [preset autorelease];
303     return preset;
304 }
305
306 - (NSDictionary *)createAnimationPreset
307 {
308     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
309
310     /* Get the New Preset Name from the field in the AddPresetPanel */
311     [preset setObject:@"Animation" forKey:@"PresetName"];
312
313     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
314     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
315
316     /*Set whether or not this is default, at creation set to 0*/
317     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
318
319     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
320     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
321
322     /* Get the New Preset Description from the field in the AddPresetPanel */
323     [preset setObject:@"HandBrake's settings for cartoons, anime, and CGI." forKey:@"PresetDescription"];
324
325     /* File Format */
326     [preset setObject:@"MKV file" forKey:@"FileFormat"];
327
328     /* Chapter Markers*/
329      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
330
331     /* Video encoder */
332     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
333
334     /* x264 Option String */
335     [preset setObject:@"ref=5:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2:psy-rd=1,1:subme=9" forKey:@"x264Option"];
336
337     /* Video quality */
338     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
339     [preset setObject:@"700" forKey:@"VideoTargetSize"];
340     [preset setObject:@"1000" forKey:@"VideoAvgBitrate"];
341     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
342
343     /* Video framerate */
344     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
345
346     /* GrayScale */
347     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
348
349     /* 2 Pass Encoding */
350     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTwoPass"];
351     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTurboTwoPass"];
352
353     /*Picture Settings*/
354     /* Basic Picture Settings */
355     /* Use Max Picture settings for whatever the dvd is.*/
356     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
357     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
358     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
359     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
360     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
361     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
362
363     /* Filters. For animation, use slower deinterlacing. */
364     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
365     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
366     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureDecomb"];
367     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
368     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
369     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
370     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureDetelecine"];
371
372     /* Set crop settings here */
373     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
374     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
375     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
376     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
377     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
378
379     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
380      * not listed will be set to "None" and not encoded */
381     
382     /* Track 1 */
383     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
384     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
385     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
386     [preset setObject:@"Auto" forKey:@"Audio1Samplerate"];
387     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
388     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
389     
390     /* Subtitles*/
391     [preset setObject:@"None" forKey:@"Subtitles"];
392
393     [preset autorelease];
394     return preset;
395 }
396
397 - (NSDictionary *)createAppleTVPreset
398 {
399     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
400
401     /* Get the New Preset Name from the field in the AddPresetPanel */
402     [preset setObject:@"AppleTV" forKey:@"PresetName"];
403
404     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
405     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
406     /*Set whether or not this is a folder, 1 is bool for folder*/
407     [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
408     /*Set whether or not this is default, at creation set to 0*/
409     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
410
411     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
412     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
413
414     /* Get the New Preset Description from the field in the AddPresetPanel */
415     [preset setObject:@"HandBrake's settings for the AppleTV, including Dolby Digital 5.1 AC3 sound. Provides a good balance between quality and file size, and optimizes performance." forKey:@"PresetDescription"];
416
417     /* File Format */
418     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
419
420     /* 64-bit MP4 file */
421     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
422
423     /* Chapter Markers*/
424      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
425
426     /* Video encoder */
427     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
428
429     /* x264 Option String (We can use this to tweak the appleTV output)*/
430     [preset setObject:@"level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=9:analyse=all" forKey:@"x264Option"];
431
432     /* Video quality */
433     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
434     [preset setObject:@"700" forKey:@"VideoTargetSize"];
435     [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
436     [preset setObject:[NSNumber numberWithFloat:0.59] forKey:@"VideoQualitySlider"];
437
438     /* Video framerate */
439     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
440
441     /* GrayScale */
442     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
443
444     /* 2 Pass Encoding */
445     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
446
447     /* Basic Picture Settings */
448     /* Use Max Picture settings for whatever the dvd is.*/
449     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
450     [preset setObject:[NSNumber numberWithInt:960] forKey:@"PictureWidth"];
451     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
452     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
453     [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
454
455     /* Explicitly set the filters for built-in presets */
456     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
457     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
458     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
459     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
460     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
461     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
462
463     /* Set crop settings here */
464     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
465     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];    
466     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
467     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
468     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
469     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
470
471     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
472      * not listed will be set to "None" and not encoded */
473     
474     /* Track 1 */
475     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
476     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
477     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
478     [preset setObject:@"48" forKey:@"Audio1Samplerate"];
479     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
480     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
481
482     /* Track 2 */
483     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio2Track"];
484     [preset setObject:@"AC3 Passthru" forKey:@"Audio2Encoder"];
485     [preset setObject:@"AC3 Passthru" forKey:@"Audio2Mixdown"];
486     [preset setObject:@"Auto" forKey:@"Audio2Samplerate"];
487     /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
488      * the sources bitrate, however we need to initially set the value to something so
489      * the macgui doesnt barf, so 160 seems as good as anything */
490     [preset setObject:@"160" forKey:@"Audio2Bitrate"];
491     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio2TrackDRCSlider"];
492
493     /* Subtitles*/
494     [preset setObject:@"None" forKey:@"Subtitles"];
495
496     [preset autorelease];
497     return preset;
498 }
499
500 - (NSDictionary *)createAppleUniversalPreset
501 {
502     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
503
504     /* Get the New Preset Name from the field in the AddPresetPanel */
505     [preset setObject:@"Universal" forKey:@"PresetName"];
506
507     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
508     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
509     /*Set whether or not this is a folder, 1 is bool for folder*/
510     [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
511     /*Set whether or not this is default, at creation set to 0*/
512     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
513
514     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
515     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
516
517     /* Get the New Preset Description from the field in the AddPresetPanel */
518     [preset setObject:@"HandBrake's universally compatible, full resolution settings for all current Apple devices: iPod, iPhone, AppleTV, and Macs" forKey:@"PresetDescription"];
519
520     /* File Format */
521     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
522
523     /* 64-bit MP4 file */
524     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Mp4LargeFile"];
525
526     /* Chapter Markers*/
527      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
528
529     /* Video encoder */
530     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
531
532     /* x264 Option String (We can use this to tweak the appleTV output)*/
533     [preset setObject:@"level=30:cabac=0:ref=3:mixed-refs=1:analyse=all:me=umh:no-fast-pskip=1" forKey:@"x264Option"];
534
535     /* Video quality */
536     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
537     [preset setObject:@"700" forKey:@"VideoTargetSize"];
538     [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
539     [preset setObject:[NSNumber numberWithFloat:0.59] forKey:@"VideoQualitySlider"];
540
541     /* Video framerate */
542     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
543
544     /* GrayScale */
545     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
546
547     /* 2 Pass Encoding */
548     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
549
550     /* Basic Picture Settings */
551     /* Use Max Picture settings for whatever the dvd is.*/
552     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
553     [preset setObject:[NSNumber numberWithInt:720] forKey:@"PictureWidth"];
554     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
555     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
556     [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
557
558     /* Explicitly set the filters for built-in presets */
559     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
560     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
561     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
562     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
563     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
564     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
565
566     /* Set crop settings here */
567     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
568     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];    
569     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
570     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
571     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
572     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
573
574     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
575      * not listed will be set to "None" and not encoded */
576     
577     /* Track 1 */
578     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
579     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
580     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
581     [preset setObject:@"48" forKey:@"Audio1Samplerate"];
582     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
583     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
584
585     /* Track 2 */
586     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio2Track"];
587     [preset setObject:@"AC3 Passthru" forKey:@"Audio2Encoder"];
588     [preset setObject:@"AC3 Passthru" forKey:@"Audio2Mixdown"];
589     [preset setObject:@"Auto" forKey:@"Audio2Samplerate"];
590     /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
591      * the sources bitrate, however we need to initially set the value to something so
592      * the macgui doesnt barf, so 160 seems as good as anything */
593     [preset setObject:@"160" forKey:@"Audio2Bitrate"];
594     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio2TrackDRCSlider"];
595
596     /* Subtitles*/
597     [preset setObject:@"None" forKey:@"Subtitles"];
598
599     [preset autorelease];
600     return preset;
601 }
602
603 - (NSDictionary *)createClassicPreset
604 {
605     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
606
607     /* Get the New Preset Name from the field in the AddPresetPanel */
608     [preset setObject:@"Classic" forKey:@"PresetName"];
609
610     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
611     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
612
613     /*Set whether or not this is default, at creation set to 0*/
614     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
615
616     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
617     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
618
619     /* Get the New Preset Description from the field in the AddPresetPanel */
620     [preset setObject:@"HandBrake's traditional, faster, lower-quality settings." forKey:@"PresetDescription"];
621
622     /* File Format */
623     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
624
625     /* Chapter Markers*/
626      [preset setObject:[NSNumber numberWithInt:0] forKey:@"ChapterMarkers"];
627
628     /* Video encoder */
629     [preset setObject:@"MPEG-4 (FFmpeg)" forKey:@"VideoEncoder"];
630
631     /* x264 Option String */
632     [preset setObject:@"" forKey:@"x264Option"];
633
634     /* Video quality */
635     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
636     [preset setObject:@"700"  forKey:@"VideoTargetSize"];
637     [preset setObject:@"1000" forKey:@"VideoAvgBitrate"];
638     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
639
640     /* Video framerate */
641     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
642
643     /* GrayScale */
644     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
645
646     /* 2 Pass Encoding */
647     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
648
649     /*Picture Settings*/
650     /* Use Max Picture settings for whatever the dvd is.*/
651     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
652     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
653     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
654     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
655     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
656     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
657
658     /* Explicitly set the filters for built-in presets */
659     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
660     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
661     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
662     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
663     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
664     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
665
666     /* Set crop settings here */
667     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
668     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
669     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
670     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
671     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
672     
673     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
674      * not listed will be set to "None" and not encoded */
675     
676     /* Track 1 */
677     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
678     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
679     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
680     [preset setObject:@"Auto" forKey:@"Audio1Samplerate"];
681     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
682     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
683
684     /* Subtitles*/
685     [preset setObject:@"None" forKey:@"Subtitles"];
686
687     [preset autorelease];
688     return preset;
689 }
690
691 - (NSDictionary *)createCRFPreset
692 {
693     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
694
695     /* Get the New Preset Name from the field in the AddPresetPanel */
696     [preset setObject:@"Constant Quality Rate" forKey:@"PresetName"];
697
698     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
699     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
700
701     /*Set whether or not this is default, at creation set to 0*/
702     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
703
704     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
705     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
706
707     /* Get the New Preset Description from the field in the AddPresetPanel */
708     [preset setObject:@"HandBrake's preset for consistently excellent quality in one pass, with the downside of entirely unpredictable file sizes and bitrates." forKey:@"PresetDescription"];
709
710     /* File Format */
711     [preset setObject:@"MKV file" forKey:@"FileFormat"];
712
713     /* Chapter Markers*/
714      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
715
716     /* Video encoder */
717     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
718
719     /* x264 Option String */
720     [preset setObject:@"ref=3:mixed-refs:bframes=3:b-pyramid:weightb:filter=-2,-1:trellis=1:analyse=all:8x8dct:me=umh:subme=9:psy-rd=1,1" forKey:@"x264Option"];
721
722     /* Video quality */
723     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
724     [preset setObject:@"700" forKey:@"VideoTargetSize"];
725     [preset setObject:@"2000" forKey:@"VideoAvgBitrate"];
726     [preset setObject:[NSNumber numberWithFloat:0.60] forKey:@"VideoQualitySlider"];
727
728     /* Video framerate */
729     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
730
731     /* GrayScale */
732     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
733
734     /* 2 Pass Encoding */
735     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
736     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTurboTwoPass"];
737
738     /*Picture Settings*/
739     /* Use Max Picture settings for whatever the dvd is.*/
740     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
741     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
742     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
743     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
744     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
745     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
746
747     /* Explicitly set the filters for built-in presets */
748     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
749     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
750     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
751     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
752     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
753     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
754
755     /* Set crop settings here */
756     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
757     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
758     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
759     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
760     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
761
762     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
763      * not listed will be set to "None" and not encoded */
764     
765     /* Track 1 */
766     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
767     [preset setObject:@"AC3 Passthru" forKey:@"Audio1Encoder"];
768     [preset setObject:@"AC3 Passthru" forKey:@"Audio1Mixdown"];
769     [preset setObject:@"Auto" forKey:@"Audio1Samplerate"];
770     /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
771      * the sources bitrate, however we need to initially set the value to something so
772      * the macgui doesnt barf, so 160 seems as good as anything */
773     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
774     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
775
776     /* Subtitles*/
777     [preset setObject:@"None" forKey:@"Subtitles"];
778
779     [preset autorelease];
780     return preset;
781 }
782
783 - (NSDictionary *)createFilmPreset
784 {
785     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
786
787     /* Get the New Preset Name from the field in the AddPresetPanel */
788     [preset setObject:@"Film" forKey:@"PresetName"];
789
790     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
791     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
792
793     /*Set whether or not this is default, at creation set to 0*/
794     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
795
796     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
797     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
798
799     /* Get the New Preset Description from the field in the AddPresetPanel */
800     [preset setObject:@"HandBrake's preset for feature films." forKey:@"PresetDescription"];
801
802     /* File Format */
803     [preset setObject:@"MKV file" forKey:@"FileFormat"];
804
805     /* Chapter Markers*/
806      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
807
808     /* Video encoder */
809     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
810
811     /* x264 Option String */
812     [preset setObject:@"ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:subme=9:analyse=all:8x8dct:trellis=1:no-fast-pskip:psy-rd=1,1" forKey:@"x264Option"];
813
814     /* Video quality */
815     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
816     [preset setObject:@"700" forKey:@"VideoTargetSize"];
817     [preset setObject:@"1800" forKey:@"VideoAvgBitrate"];
818     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
819
820     /* Video framerate */
821     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
822
823     /* GrayScale */
824     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
825
826     /* 2 Pass Encoding */
827     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTwoPass"];
828     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTurboTwoPass"];
829
830     /*Picture Settings*/
831     /* Use Max Picture settings for whatever the dvd is.*/
832     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
833     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
834     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
835     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
836     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
837     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
838
839     /* Explicitly set the filters for built-in presets */
840     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
841     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
842     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
843     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
844     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
845     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
846
847     /* Set crop settings here */
848     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
849     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
850     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
851     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
852     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
853
854     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
855      * not listed will be set to "None" and not encoded */
856     
857     /* Track 1 */
858     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
859     [preset setObject:@"AC3 Passthru" forKey:@"Audio1Encoder"];
860     [preset setObject:@"AC3 Passthru" forKey:@"Audio1Mixdown"];
861     [preset setObject:@"Auto" forKey:@"Audio1Samplerate"];
862     /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
863      * the sources bitrate, however we need to initially set the value to something so
864      * the macgui doesnt barf, so 160 seems as good as anything */
865     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
866     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
867
868     /* Subtitles*/
869     [preset setObject:@"None" forKey:@"Subtitles"];
870
871     [preset autorelease];
872     return preset;
873 }
874
875 - (NSDictionary *)createiPhonePreset
876 {
877     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
878
879     /* Get the New Preset Name from the field in the AddPresetPanel */
880     [preset setObject:@"iPhone & iPod Touch" forKey:@"PresetName"];
881
882     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
883     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
884
885     /*Set whether or not this is default, at creation set to 0*/
886     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
887
888     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
889     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
890
891     /* Get the New Preset Description from the field in the AddPresetPanel */
892     [preset setObject:@"HandBrake's settings for the iPhone and iPod Touch." forKey:@"PresetDescription"];
893
894     /* File Format */
895     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
896
897     /* Chapter Markers*/
898      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
899
900     /* Video encoder */
901     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
902     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
903     /* x264 Option String */
904     [preset setObject:@"level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1" forKey:@"x264Option"];
905
906     /* Video quality */
907     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
908     [preset setObject:@"700" forKey:@"VideoTargetSize"];
909     [preset setObject:@"960" forKey:@"VideoAvgBitrate"];
910     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
911
912     /* Video framerate */
913     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
914
915     /* GrayScale */
916     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
917
918     /* 2 Pass Encoding */
919     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
920
921     /*Picture Settings*/
922     /* Use a width of 480 for the iPhone*/
923     [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
924     [preset setObject:[NSNumber numberWithInt:480] forKey:@"PictureWidth"];
925     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
926     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
927     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
928
929     /* Explicitly set the filters for built-in presets */
930     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
931     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
932     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
933     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
934     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
935     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
936
937     /* Set crop settings here */
938     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
939     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
940     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
941     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
942     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
943     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
944
945     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
946      * not listed will be set to "None" and not encoded */
947     
948     /* Track 1 */
949     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
950     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
951     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
952     [preset setObject:@"48" forKey:@"Audio1Samplerate"];
953     [preset setObject:@"128" forKey:@"Audio1Bitrate"];
954     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
955
956     /* Subtitles*/
957     [preset setObject:@"None" forKey:@"Subtitles"];
958
959     [preset autorelease];
960     return preset;
961 }
962
963 - (NSDictionary *)createIpodHighPreset
964 {
965     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
966
967     /* Get the New Preset Name from the field in the AddPresetPanel */
968     [preset setObject:@"iPod Legacy" forKey:@"PresetName"];
969
970     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
971     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
972
973     /*Set whether or not this is default, at creation set to 0*/
974     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
975
976     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
977     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
978
979     /* Get the New Preset Description from the field in the AddPresetPanel */
980     [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" forKey:@"PresetDescription"];
981
982     /* File Format */
983     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
984
985     /* Chapter Markers*/
986      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
987
988     /* Video encoder */
989     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
990     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
991     /* x264 Option String */
992     [preset setObject:@"level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1" forKey:@"x264Option"];
993
994     /* Video quality */
995     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
996     [preset setObject:@"700" forKey:@"VideoTargetSize"];
997     [preset setObject:@"1500" forKey:@"VideoAvgBitrate"];
998     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
999
1000     /* Video framerate */
1001     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1002
1003     /* GrayScale */
1004     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1005
1006     /* 2 Pass Encoding */
1007     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1008
1009     /*Picture Settings*/
1010     /* Use a width of 640 for iPod TV-out */
1011     [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
1012     [preset setObject:[NSNumber numberWithInt:640] forKey:@"PictureWidth"];
1013     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1014     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
1015     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
1016
1017     /* Explicitly set the filters for built-in presets */
1018     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1019     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1020     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1021     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1022     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1023     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1024
1025     /* Set crop settings here */
1026     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1027     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1028     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1029     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1030     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1031     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1032
1033     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1034      * not listed will be set to "None" and not encoded */
1035     
1036     /* Track 1 */
1037     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
1038     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
1039     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
1040     [preset setObject:@"48" forKey:@"Audio1Samplerate"];
1041     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
1042     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
1043
1044     /* Subtitles*/
1045     [preset setObject:@"None" forKey:@"Subtitles"];
1046
1047     [preset autorelease];
1048     return preset;
1049 }
1050
1051 - (NSDictionary *)createIpodLowPreset
1052 {
1053     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1054
1055     /* Get the New Preset Name from the field in the AddPresetPanel */
1056     [preset setObject:@"iPod Classic & iPod Nano" forKey:@"PresetName"];
1057
1058     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1059     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1060
1061     /*Set whether or not this is default, at creation set to 0*/
1062     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1063
1064     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1065     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1066
1067     /* Get the New Preset Description from the field in the AddPresetPanel */
1068     [preset setObject:@"HandBrake's low resolution settings for the iPod. Optimized for great playback on the iPod screen, with smaller file size." forKey:@"PresetDescription"];
1069
1070     /* File Format */
1071     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1072
1073     /* Chapter Markers*/
1074      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1075
1076     /* Video encoder */
1077     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1078     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
1079     /* x264 Option String */
1080     [preset setObject:@"level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1" forKey:@"x264Option"];
1081
1082     /* Video quality */
1083     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1084     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1085     [preset setObject:@"700" forKey:@"VideoAvgBitrate"];
1086     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1087
1088     /* Video framerate */
1089     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1090
1091     /* GrayScale */
1092     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1093
1094     /* 2 Pass Encoding */
1095     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1096
1097     /*Picture Settings*/
1098     /* Use a width of 320 for the iPod screen */
1099     [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
1100     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1101     [preset setObject:[NSNumber numberWithInt:320] forKey:@"PictureWidth"];
1102     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1103     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
1104     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
1105
1106     /* Explicitly set the filters for built-in presets */
1107     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1108     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1109     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1110     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1111     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1112     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1113
1114     /* Set crop settings here */
1115     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1116     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1117     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1118     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1119     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1120
1121     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1122      * not listed will be set to "None" and not encoded */
1123     
1124     /* Track 1 */
1125     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
1126     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
1127     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
1128     [preset setObject:@"48" forKey:@"Audio1Samplerate"];
1129     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
1130     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
1131
1132     /* Subtitles*/
1133     [preset setObject:@"None" forKey:@"Subtitles"];
1134
1135     [preset autorelease];
1136     return preset;
1137 }
1138
1139 - (NSDictionary *)createNormalPreset
1140 {
1141     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1142
1143     /* Get the New Preset Name from the field in the AddPresetPanel */
1144     [preset setObject:@"Normal" forKey:@"PresetName"];
1145
1146     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1147     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1148
1149     /*Set whether or not this is default, at creation set to 0*/
1150     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Default"];
1151
1152     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1153     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1154
1155     /* Get the New Preset Description from the field in the AddPresetPanel */
1156     [preset setObject:@"HandBrake's normal, default settings." forKey:@"PresetDescription"];
1157
1158     /* File Format */
1159     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1160
1161     /* Chapter Markers*/
1162      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1163
1164     /* Video encoder */
1165     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1166
1167     /* x264 Option String */
1168     [preset setObject:@"ref=2:bframes=2:me=umh" forKey:@"x264Option"];
1169
1170     /* Video quality */
1171     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1172     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1173     [preset setObject:@"1500" forKey:@"VideoAvgBitrate"];
1174     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1175
1176     /* Video framerate */
1177     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1178
1179     /* GrayScale */
1180     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1181
1182     /* 2 Pass Encoding */
1183     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTwoPass"];
1184     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTurboTwoPass"];
1185
1186     /*Picture Settings*/
1187     /* Use Max Picture settings for whatever the dvd is.*/
1188     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
1189     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1190     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
1191     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1192     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
1193     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
1194
1195     /* Explicitly set the filters for built-in presets */
1196     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1197     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1198     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1199     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1200     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1201     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1202
1203     /* Set crop settings here */
1204     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1205     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1206     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1207     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1208     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1209
1210     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1211      * not listed will be set to "None" and not encoded */
1212     
1213     /* Track 1 */
1214     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
1215     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
1216     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
1217     [preset setObject:@"Auto" forKey:@"Audio1Samplerate"];
1218     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
1219     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
1220
1221     /* Subtitles*/
1222     [preset setObject:@"None" forKey:@"Subtitles"];
1223
1224     [preset autorelease];
1225     return preset;
1226 }
1227
1228 - (NSDictionary *)createPSPPreset
1229 {
1230     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1231
1232     /* Get the New Preset Name from the field in the AddPresetPanel */
1233     [preset setObject:@"PSP" forKey:@"PresetName"];
1234
1235     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
1236     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1237
1238     /*Set whether or not this is default, at creation set to 0*/
1239     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1240
1241     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1242     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1243
1244     /* Get the New Preset Description from the field in the AddPresetPanel */
1245     [preset setObject:@"HandBrake's settings for the Sony PlayStation Portable." forKey:@"PresetDescription"];
1246
1247     /* File Format */
1248     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1249
1250     /* Chapter Markers*/
1251      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1252
1253     /* Video encoder */
1254     [preset setObject:@"MPEG-4 (FFmpeg)" forKey:@"VideoEncoder"];
1255
1256     /* x264 Option String (We can use this to tweak the appleTV output)*/
1257     [preset setObject:@"" forKey:@"x264Option"];
1258
1259     /* Video quality */
1260     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1261     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1262     [preset setObject:@"1024" forKey:@"VideoAvgBitrate"];
1263     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1264
1265     /* Video framerate */
1266     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1267
1268     /* GrayScale */
1269     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1270
1271     /* 2 Pass Encoding */
1272     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1273
1274     /*Picture Settings*/
1275     /* Use dimensions of 368*208 for robust PSP compatibility */
1276     [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
1277     [preset setObject:@"368" forKey:@"PictureWidth"];
1278     [preset setObject:@"208" forKey:@"PictureHeight"];
1279     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
1280     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
1281
1282     /* Explicitly set the filters for built-in presets */
1283     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1284     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1285     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1286     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1287     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1288     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1289
1290     /* Set crop settings here */
1291     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1292     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1293     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1294     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1295     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1296     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1297
1298     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1299      * not listed will be set to "None" and not encoded */
1300     
1301     /* Track 1 */
1302     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
1303     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
1304     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
1305     [preset setObject:@"48" forKey:@"Audio1Samplerate"];
1306     [preset setObject:@"128" forKey:@"Audio1Bitrate"];
1307     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
1308
1309     /* Subtitles*/
1310     [preset setObject:@"None" forKey:@"Subtitles"];
1311
1312     [preset autorelease];
1313     return preset;
1314 }
1315
1316 - (NSDictionary *)createPSThreePreset
1317 {
1318     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1319
1320     /* Get the New Preset Name from the field in the AddPresetPanel */
1321     [preset setObject:@"PS3" forKey:@"PresetName"];
1322
1323     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
1324     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1325
1326     /*Set whether or not this is default, at creation set to 0*/
1327     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1328
1329     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1330     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1331
1332     /* Get the New Preset Description from the field in the AddPresetPanel */
1333     [preset setObject:@"HandBrake's settings for the Sony PlayStation 3." forKey:@"PresetDescription"];
1334
1335     /* File Format */
1336     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1337
1338     /* Chapter Markers*/
1339      [preset setObject:[NSNumber numberWithInt:0] forKey:@"ChapterMarkers"];
1340
1341     /* Video encoder */
1342     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1343
1344     /* x264 Option String (We can use this to tweak the appleTV output)*/
1345     [preset setObject:@"level=41:me=umh" forKey:@"x264Option"];
1346
1347     /* Video quality */
1348     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1349     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1350     [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
1351     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1352
1353     /* Video framerate */
1354     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1355
1356     /* GrayScale */
1357     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1358
1359     /* 2 Pass Encoding */
1360     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1361
1362     /*Picture Settings*/
1363     /* Use Max Picture settings for whatever the dvd is.*/
1364     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
1365     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
1366     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1367     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
1368     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
1369
1370     /* Explicitly set the filters for built-in presets */
1371     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1372     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1373     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1374     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1375     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1376     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1377
1378     /* Set crop settings here */
1379     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1380     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureAutoCrop"];
1381     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1382     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1383     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1384     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1385
1386     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1387      * not listed will be set to "None" and not encoded */
1388     
1389     /* Track 1 */
1390     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
1391     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
1392     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
1393     [preset setObject:@"48" forKey:@"Audio1Samplerate"];
1394     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
1395     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
1396
1397     /* Subtitles*/
1398     [preset setObject:@"None" forKey:@"Subtitles"];
1399
1400     [preset autorelease];
1401     return preset;
1402 }
1403
1404 - (NSDictionary *)createQuickTimePreset
1405 {
1406     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1407
1408     /* Get the New Preset Name from the field in the AddPresetPanel */
1409     [preset setObject:@"QuickTime" forKey:@"PresetName"];
1410
1411     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1412     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1413
1414     /*Set whether or not this is default, at creation set to 0*/
1415     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1416
1417     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1418     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1419
1420     /* Get the New Preset Description from the field in the AddPresetPanel */
1421     [preset setObject:@"HandBrake's high profile settings for use with QuickTime. It can be slow, so use it when the Normal preset doesn't look good enough." forKey:@"PresetDescription"];
1422
1423     /* File Format */
1424     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1425
1426     /* Chapter Markers*/
1427      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1428
1429     /* Video encoder */
1430     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1431
1432     /* x264 Option String */
1433     [preset setObject:@"ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip=1:psy-rd=1,1" forKey:@"x264Option"];
1434
1435     /* Video quality */
1436     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1437     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1438     [preset setObject:@"1800" forKey:@"VideoAvgBitrate"];
1439     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1440
1441     /* Video framerate */
1442     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1443
1444     /* GrayScale */
1445     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1446
1447     /* 2 Pass Encoding */
1448     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTwoPass"];
1449     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTurboTwoPass"];
1450
1451     /*Picture Settings*/
1452     /* Use Max Picture settings for whatever the dvd is.*/
1453     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
1454     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1455     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
1456     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1457     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
1458     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
1459
1460     /* Explicitly set the filters for built-in presets */
1461     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1462     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1463     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1464     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1465     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1466     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1467
1468     /* Set crop settings here */
1469     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1470     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1471     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1472     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1473     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1474
1475     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1476      * not listed will be set to "None" and not encoded */
1477     
1478     /* Track 1 */
1479     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
1480     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
1481     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
1482     [preset setObject:@"Auto" forKey:@"Audio1Samplerate"];
1483     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
1484     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
1485
1486     /* Subtitles*/
1487     [preset setObject:@"None" forKey:@"Subtitles"];
1488
1489     [preset autorelease];
1490     return preset;
1491 }
1492
1493 - (NSDictionary *)createTelevisionPreset
1494 {
1495     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1496
1497     /* Get the New Preset Name from the field in the AddPresetPanel */
1498     [preset setObject:@"Television" forKey:@"PresetName"];
1499
1500     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1501     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1502
1503     /*Set whether or not this is default, at creation set to 0*/
1504     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1505
1506     /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1507     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1508
1509     /* Get the New Preset Description from the field in the AddPresetPanel */
1510     [preset setObject:@"HandBrake's settings for video from television." forKey:@"PresetDescription"];
1511
1512     /* File Format */
1513     [preset setObject:@"MKV file" forKey:@"FileFormat"];
1514
1515     /* Chapter Markers*/
1516      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1517
1518     /* Video encoder */
1519     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1520
1521     /* x264 Option String */
1522     [preset setObject:@"ref=3:mixed-refs:bframes=6:weightb:direct=auto:b-pyramid:me=umh:subme=9:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip=1:psy-rd=1,1" forKey:@"x264Option"];
1523
1524     /* Video quality */
1525     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1526     [preset setObject:@"700" forKey:@"VideoTargetSize"];
1527     [preset setObject:@"1300" forKey:@"VideoAvgBitrate"];
1528     [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1529
1530     /* Video framerate */
1531     [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1532
1533     /* GrayScale */
1534     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1535
1536     /* 2 Pass Encoding */
1537     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTwoPass"];
1538     [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoTurboTwoPass"];
1539
1540     /*Picture Settings*/
1541     /* Use Max Picture settings for whatever the dvd is.*/
1542     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
1543     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1544     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
1545     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1546     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
1547     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
1548
1549     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1550     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1551     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureDecomb"];
1552     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1553     [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1554     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1555     [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureDetelecine"];
1556
1557     /* Set crop settings here */
1558     /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1559     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1560     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1561     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1562     [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1563
1564     /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1565      * not listed will be set to "None" and not encoded */
1566     
1567     /* Track 1 */
1568     [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
1569     [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
1570     [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
1571     [preset setObject:@"Auto" forKey:@"Audio1Samplerate"];
1572     [preset setObject:@"160" forKey:@"Audio1Bitrate"];
1573     [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
1574
1575     /* Subtitles*/
1576     [preset setObject:@"None" forKey:@"Subtitles"];
1577
1578     [preset autorelease];
1579     return preset;
1580 }
1581
1582 @end