OSDN Git Service

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