OSDN Git Service

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