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. */
9 @implementation HBPresets
16 /* Called by -addFactoryPresets in Controller.mm */
17 - (NSMutableArray *) generateBuiltinPresets: (NSMutableArray *) UserPresets
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 */
22 /* Note: the built in presets will *not* sort themselves alphabetically, so they will
23 * appear in the order you create them
25 /* Built in preset folders at the root of the hierarchy */
26 [UserPresets addObject:[self createApplePresetFolder]];
27 [UserPresets addObject:[self createRegularPresetFolder]];
28 [UserPresets addObject:[self createLegacyPresetFolder]];
30 /* Independent presets at the root hierarchy level would go here */
32 /* return the newly regenerated preset array back to Controller.mm */
38 #pragma mark Built In Preset Folder Definitions
40 - (NSDictionary *)createApplePresetFolder
42 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
43 /*Set whether or not this is a folder, 1 is bool for folder*/
44 [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
47 /* Get the New Preset Name from the field in the AddPresetPanel */
48 [preset setObject:@"Apple" forKey:@"PresetName"];
50 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
51 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
53 /*Set whether or not this is default, at creation set to 0*/
54 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
56 /* Lets initalize the child array of dictionaries for folders, this
57 is an array of dictionaries much like the root level of presets and
58 may contain folders and presets alike, etc.*/
59 NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
60 /* we actually call the methods for the nests here */
61 [childrenArray addObject:[self createAppleUniversalPreset]];
62 [childrenArray addObject:[self createIpodLowPreset]];
63 [childrenArray addObject:[self createiPhonePreset]];
64 [childrenArray addObject:[self createiPhone4Preset]];
65 [childrenArray addObject:[self createiPadPreset]];
66 [childrenArray addObject:[self createAppleTVPreset]];
67 [childrenArray addObject:[self createAppleTv2Preset]];
69 [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
71 [childrenArray autorelease];
79 - (NSDictionary *)createRegularPresetFolder
81 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
82 /*Set whether or not this is a folder, 1 is bool for folder*/
83 [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
86 /* Get the New Preset Name from the field in the AddPresetPanel */
87 [preset setObject:@"Regular" forKey:@"PresetName"];
89 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
90 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
92 /*Set whether or not this is default, at creation set to 0*/
93 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
95 /* Lets initalize the child array of dictionaries for folders, this
96 is an array of dictionaries much like the root level of presets and
97 may contain folders and presets alike, etc.*/
98 NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
99 /* we actually call the methods for the nests here */
100 [childrenArray addObject:[self createNormalPreset]];
101 [childrenArray addObject:[self createHighProfilePreset]];
102 [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
104 [childrenArray autorelease];
108 [preset autorelease];
112 - (NSDictionary *)createLegacyPresetFolder
114 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
115 /*Set whether or not this is a folder, 1 is bool for folder*/
116 [preset setObject:[NSNumber numberWithBool: YES] forKey:@"Folder"];
119 /* Get the New Preset Name from the field in the AddPresetPanel */
120 [preset setObject:@"Legacy" forKey:@"PresetName"];
122 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
123 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
125 /*Set whether or not this is default, at creation set to 0*/
126 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
128 /* Lets initalize the child array of dictionaries for folders, this
129 is an array of dictionaries much like the root level of presets and
130 may contain folders and presets alike, etc.*/
131 NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
132 /* we actually call the methods for the nests here */
133 [childrenArray addObject:[self createClassicPreset]];
134 [childrenArray addObject:[self createAppleTVLegacyPreset]];
135 [childrenArray addObject:[self createiPhoneLegacyPreset]];
136 [childrenArray addObject:[self createIpodHighPreset]];
137 [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
139 [childrenArray autorelease];
143 [preset autorelease];
150 #pragma mark Built In Preset Definitions
152 /* These NSDictionary Buit-In Preset definitions contain all of the settings for one built in preset */
153 /* Note: For now, you can no longer have reference to any main window fields in your key values */
155 - (NSDictionary *)createAppleTVPreset
157 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
159 /* Get the New Preset Name from the field in the AddPresetPanel */
160 [preset setObject:@"AppleTV" forKey:@"PresetName"];
162 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
163 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
164 /*Set whether or not this is a folder, 1 is bool for folder*/
165 [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
166 /*Set whether or not this is default, at creation set to 0*/
167 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
169 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
170 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
172 /* Get the New Preset Description from the field in the AddPresetPanel */
173 [preset setObject:@"HandBrake's settings for the AppleTV and 2009's iPhone and iPod Touch lineup. Provides a good balance between quality and file size, and pushes the devices to their limits. Includes Dolby Digital 5.1 AC3 sound for the AppleTV." forKey:@"PresetDescription"];
176 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
178 /* 64-bit MP4 file */
179 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
182 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
185 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
187 /* x264 Option String (We can use this to tweak the appleTV output)*/
188 [preset setObject:@"cabac=0:ref=2:me=umh:b-pyramid=none:b-adapt=2:weightb=0:trellis=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500" forKey:@"x264Option"];
191 [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
192 [preset setObject:@"700" forKey:@"VideoTargetSize"];
193 [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
194 [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
196 /* Video framerate */
197 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
200 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
202 /* 2 Pass Encoding */
203 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
205 /* Basic Picture Settings */
206 /* Use Max Picture settings for whatever the dvd is.*/
207 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
208 [preset setObject:[NSNumber numberWithInt:960] forKey:@"PictureWidth"];
209 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
210 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
211 [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
213 /* Explicitly set the filters for built-in presets */
214 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
215 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
216 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
217 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
218 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
219 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
221 /* Set crop settings here */
222 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
223 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
224 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
225 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
226 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
227 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
229 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
230 * not listed will be set to "None" and not encoded */
231 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
234 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
235 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
236 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
237 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
238 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
239 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
240 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
241 [audioTrack1Array autorelease];
242 [audioListArray addObject:audioTrack1Array];
245 NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
246 [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
247 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
248 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
249 [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
250 [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
251 /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
252 * the sources bitrate, however we need to initially set the value to something so
253 * the macgui doesnt barf, so 160 seems as good as anything */
254 [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
255 [audioTrack2Array autorelease];
256 [audioListArray addObject:audioTrack2Array];
258 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
261 [preset setObject:@"None" forKey:@"Subtitles"];
263 [preset autorelease];
267 - (NSDictionary *)createAppleTVLegacyPreset
269 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
271 /* Get the New Preset Name from the field in the AddPresetPanel */
272 [preset setObject:@"AppleTV Legacy" forKey:@"PresetName"];
274 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
275 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
277 /*Set whether or not this is default, at creation set to 0*/
278 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
280 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
281 [preset setObject:[NSNumber numberWithInt:2] forKey:@"UsesPictureSettings"];
283 /* Get the New Preset Description from the field in the AddPresetPanel */
284 [preset setObject:@"HandBrake's deprecated settings for the AppleTV, including Dolby Digital 5.1 AC3 sound. Provides a good balance between quality and file size, and optimizes performance. This is the AppleTV preset from HandBrake 0.9.2, and while it is offered as a service to legacy users, it is no longer supported." forKey:@"PresetDescription"];
287 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
289 /* 64-bit MP4 file */
290 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
293 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
296 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
298 /* x264 Option String (We can use this to tweak the appleTV output)*/
299 [preset setObject:@"ref=1:b-pyramid=none:weightp=0:subme=5:me=umh:no-fast-pskip=1:cabac=0:weightb=0:8x8dct=0:trellis=0" forKey:@"x264Option"];
302 [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
303 [preset setObject:@"700" forKey:@"VideoTargetSize"];
304 [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
305 [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
307 /* Video framerate */
308 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
311 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
313 /* 2 Pass Encoding */
314 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
316 /* Basic Picture Settings */
317 /* Use Max Picture settings for whatever the dvd is.*/
318 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
319 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
320 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
321 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
323 /* Explicitly set the filters for built-in presets */
324 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
325 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
326 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
327 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
328 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
329 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
331 /* Set crop settings here */
332 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
333 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
334 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
335 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
336 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
337 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
339 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
340 * not listed will be set to "None" and not encoded */
341 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
344 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
345 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
346 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
347 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
348 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
349 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
350 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
351 [audioTrack1Array autorelease];
352 [audioListArray addObject:audioTrack1Array];
355 NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
356 [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
357 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
358 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
359 [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
360 [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
361 /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
362 * the sources bitrate, however we need to initially set the value to something so
363 * the macgui doesnt barf, so 160 seems as good as anything */
364 [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
365 [audioTrack2Array autorelease];
366 [audioListArray addObject:audioTrack2Array];
368 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
371 [preset setObject:@"None" forKey:@"Subtitles"];
373 [preset autorelease];
377 - (NSDictionary *)createAppleUniversalPreset
379 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
381 /* Get the New Preset Name from the field in the AddPresetPanel */
382 [preset setObject:@"Universal" forKey:@"PresetName"];
384 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
385 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
386 /*Set whether or not this is a folder, 1 is bool for folder*/
387 [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
388 /*Set whether or not this is default, at creation set to 0*/
389 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
391 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
392 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
394 /* Get the New Preset Description from the field in the AddPresetPanel */
395 [preset setObject:@"HandBrake's universally compatible, full resolution settings for all current Apple devices: iPod (6G and up), iPhone, AppleTV, and Macs" forKey:@"PresetDescription"];
398 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
400 /* 64-bit MP4 file */
401 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Mp4LargeFile"];
404 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
407 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
409 /* x264 Option String (We can use this to tweak the appleTV output)*/
410 [preset setObject:@"cabac=0:ref=2:me=umh:bframes=0:weightp=0:8x8dct=0:trellis=0:subme=6" forKey:@"x264Option"];
413 [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
414 [preset setObject:@"700" forKey:@"VideoTargetSize"];
415 [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
416 [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
418 /* Video framerate */
419 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
422 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
424 /* 2 Pass Encoding */
425 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
427 /* Basic Picture Settings */
428 /* Use Max Picture settings for whatever the dvd is.*/
429 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
430 [preset setObject:[NSNumber numberWithInt:720] forKey:@"PictureWidth"];
431 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
432 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
433 [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
435 /* Explicitly set the filters for built-in presets */
436 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
437 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
438 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
439 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
440 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
441 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
443 /* Set crop settings here */
444 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
445 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
446 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
447 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
448 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
449 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
451 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
452 * not listed will be set to "None" and not encoded */
453 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
456 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
457 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
458 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
459 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
460 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
461 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
462 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
463 [audioTrack1Array autorelease];
464 [audioListArray addObject:audioTrack1Array];
467 NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
468 [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
469 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
470 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
471 [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
472 [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
473 /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
474 * the sources bitrate, however we need to initially set the value to something so
475 * the macgui doesnt barf, so 160 seems as good as anything */
476 [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
477 [audioTrack2Array autorelease];
478 [audioListArray addObject:audioTrack2Array];
480 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
483 [preset setObject:@"None" forKey:@"Subtitles"];
485 [preset autorelease];
489 - (NSDictionary *)createiPadPreset
491 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
493 /* Get the New Preset Name from the field in the AddPresetPanel */
494 [preset setObject:@"iPad" forKey:@"PresetName"];
496 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
497 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
498 /*Set whether or not this is a folder, 1 is bool for folder*/
499 [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
500 /*Set whether or not this is default, at creation set to 0*/
501 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
503 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
504 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
506 /* Get the New Preset Description from the field in the AddPresetPanel */
507 [preset setObject:@"HandBrake's preset for the iPad (1st gen) is optimized for viewing on its 1024x768 display." forKey:@"PresetDescription"];
510 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
512 /* 64-bit MP4 file */
513 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
516 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
519 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
521 /* x264 Option String (We can use this to tweak the output)*/
522 [preset setObject:@"" forKey:@"x264Option"];
525 [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
526 [preset setObject:@"700" forKey:@"VideoTargetSize"];
527 [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
528 [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
530 /* Video framerate */
531 [preset setObject:@"29.97 (NTSC Video)" forKey:@"VideoFramerate"];
532 [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoFrameratePFR"];
535 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
537 /* 2 Pass Encoding */
538 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
540 /* Basic Picture Settings */
541 /* Use Max Picture settings for whatever the dvd is.*/
542 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
543 [preset setObject:[NSNumber numberWithInt:1024] forKey:@"PictureWidth"];
544 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
545 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
546 [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
548 /* Explicitly set the filters for built-in presets */
549 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
550 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
551 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
552 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
553 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
554 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
556 /* Set crop settings here */
557 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
558 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
559 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
560 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
561 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
562 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
564 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
565 * not listed will be set to "None" and not encoded */
566 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
569 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
570 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
571 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
572 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
573 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
574 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
575 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
576 [audioTrack1Array autorelease];
577 [audioListArray addObject:audioTrack1Array];
579 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
582 [preset setObject:@"None" forKey:@"Subtitles"];
584 [preset autorelease];
588 - (NSDictionary *)createiPhone4Preset
590 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
592 /* Get the New Preset Name from the field in the AddPresetPanel */
593 [preset setObject:@"iPhone 4" forKey:@"PresetName"];
595 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
596 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
597 /*Set whether or not this is a folder, 1 is bool for folder*/
598 [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
599 /*Set whether or not this is default, at creation set to 0*/
600 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
602 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
603 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
605 /* Get the New Preset Description from the field in the AddPresetPanel */
606 [preset setObject:@"HandBrake's preset for the iPhone 4 is optimized for viewing on its 960x480 display." forKey:@"PresetDescription"];
609 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
611 /* 64-bit MP4 file */
612 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
615 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
618 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
620 /* x264 Option String (We can use this to tweak the output)*/
621 [preset setObject:@"" forKey:@"x264Option"];
624 [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
625 [preset setObject:@"700" forKey:@"VideoTargetSize"];
626 [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
627 [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
629 /* Video framerate */
630 [preset setObject:@"29.97 (NTSC Video)" forKey:@"VideoFramerate"];
631 [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoFrameratePFR"];
634 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
636 /* 2 Pass Encoding */
637 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
639 /* Basic Picture Settings */
640 /* Use Max Picture settings for whatever the dvd is.*/
641 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
642 [preset setObject:[NSNumber numberWithInt:960] forKey:@"PictureWidth"];
643 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
644 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
645 [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
647 /* Explicitly set the filters for built-in presets */
648 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
649 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
650 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
651 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
652 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
653 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
655 /* Set crop settings here */
656 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
657 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
658 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
659 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
660 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
661 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
663 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
664 * not listed will be set to "None" and not encoded */
665 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
668 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
669 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
670 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
671 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
672 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
673 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
674 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
675 [audioTrack1Array autorelease];
676 [audioListArray addObject:audioTrack1Array];
678 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
681 [preset setObject:@"None" forKey:@"Subtitles"];
683 [preset autorelease];
687 - (NSDictionary *)createAppleTv2Preset
689 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
691 /* Get the New Preset Name from the field in the AddPresetPanel */
692 [preset setObject:@"AppleTV 2" forKey:@"PresetName"];
694 /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
695 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
696 /*Set whether or not this is a folder, 1 is bool for folder*/
697 [preset setObject:[NSNumber numberWithBool: NO] forKey:@"Folder"];
698 /*Set whether or not this is default, at creation set to 0*/
699 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
701 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
702 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
704 /* Get the New Preset Description from the field in the AddPresetPanel */
705 [preset setObject:@"HandBrake's preset for the Apple TV (2nd gen) is optimized for viewing on its 1280x720 display." forKey:@"PresetDescription"];
708 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
710 /* 64-bit MP4 file */
711 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
714 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
717 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
719 /* x264 Option String (We can use this to tweak the output)*/
720 [preset setObject:@"" forKey:@"x264Option"];
723 [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
724 [preset setObject:@"700" forKey:@"VideoTargetSize"];
725 [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
726 [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
728 /* Video framerate */
729 [preset setObject:@"29.97 (NTSC Video)" forKey:@"VideoFramerate"];
730 [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoFrameratePFR"];
733 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
735 /* 2 Pass Encoding */
736 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
738 /* Basic Picture Settings */
739 /* Use Max Picture settings for whatever the dvd is.*/
740 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
741 [preset setObject:[NSNumber numberWithInt:1280] forKey:@"PictureWidth"];
742 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
743 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
744 [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
746 /* Explicitly set the filters for built-in presets */
747 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
748 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
749 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
750 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
751 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
752 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
754 /* Set crop settings here */
755 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
756 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
757 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
758 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
759 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
760 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
762 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
763 * not listed will be set to "None" and not encoded */
764 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
767 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
768 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
769 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
770 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
771 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
772 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
773 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
774 [audioTrack1Array autorelease];
775 [audioListArray addObject:audioTrack1Array];
778 NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
779 [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
780 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
781 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
782 [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
783 [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
784 /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
785 * the sources bitrate, however we need to initially set the value to something so
786 * the macgui doesnt barf, so 160 seems as good as anything */
787 [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
788 [audioTrack2Array autorelease];
789 [audioListArray addObject:audioTrack2Array];
792 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
795 [preset setObject:@"None" forKey:@"Subtitles"];
797 [preset autorelease];
801 - (NSDictionary *)createClassicPreset
803 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
805 /* Get the New Preset Name from the field in the AddPresetPanel */
806 [preset setObject:@"Classic" forKey:@"PresetName"];
808 /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
809 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
811 /*Set whether or not this is default, at creation set to 0*/
812 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
814 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
815 [preset setObject:[NSNumber numberWithInt:2] forKey:@"UsesPictureSettings"];
817 /* Get the New Preset Description from the field in the AddPresetPanel */
818 [preset setObject:@"HandBrake's traditional, faster, lower-quality settings." forKey:@"PresetDescription"];
821 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
824 [preset setObject:[NSNumber numberWithInt:0] forKey:@"ChapterMarkers"];
827 [preset setObject:@"MPEG-4 (FFmpeg)" forKey:@"VideoEncoder"];
829 /* x264 Option String */
830 [preset setObject:@"" forKey:@"x264Option"];
833 [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
834 [preset setObject:@"700" forKey:@"VideoTargetSize"];
835 [preset setObject:@"1000" forKey:@"VideoAvgBitrate"];
836 [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
838 /* Video framerate */
839 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
842 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
844 /* 2 Pass Encoding */
845 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
848 /* Use Max Picture settings for whatever the dvd is.*/
849 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
850 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
851 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
852 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
853 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
855 /* Explicitly set the filters for built-in presets */
856 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
857 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
858 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
859 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
860 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
861 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
863 /* Set crop settings here */
864 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
865 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
866 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
867 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
868 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
870 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
871 * not listed will be set to "None" and not encoded */
872 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
875 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
876 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
877 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
878 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
879 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
880 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
881 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
882 [audioTrack1Array autorelease];
883 [audioListArray addObject:audioTrack1Array];
885 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
888 [preset setObject:@"None" forKey:@"Subtitles"];
890 [preset autorelease];
894 - (NSDictionary *)createHighProfilePreset
896 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
898 /* Get the New Preset Name from the field in the AddPresetPanel */
899 [preset setObject:@"High Profile" forKey:@"PresetName"];
901 /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
902 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
904 /*Set whether or not this is default, at creation set to 0*/
905 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
907 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
908 [preset setObject:[NSNumber numberWithInt:2] forKey:@"UsesPictureSettings"];
910 /* Get the New Preset Description from the field in the AddPresetPanel */
911 [preset setObject:@"HandBrake's general-purpose preset for High Profile H.264 video, with all the bells and whistles." forKey:@"PresetDescription"];
914 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
917 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
920 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
922 /* x264 Option String */
923 [preset setObject:@"b-adapt=2:rc-lookahead=50" forKey:@"x264Option"];
926 [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
927 [preset setObject:@"700" forKey:@"VideoTargetSize"];
928 [preset setObject:@"1800" forKey:@"VideoAvgBitrate"];
929 [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
931 /* Video framerate */
932 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
935 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
937 /* 2 Pass Encoding */
938 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
939 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTurboTwoPass"];
942 /* Use Max Picture settings for whatever the dvd is.*/
943 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
944 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
945 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
946 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
947 [preset setObject:[NSNumber numberWithInt:2] forKey:@"PicturePAR"];
949 /* Explicitly set the filters for built-in presets */
950 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
951 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureDecombDeinterlace"];
952 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
953 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
954 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
955 [preset setObject:[NSNumber numberWithInt:2] forKey:@"PictureDetelecine"];
956 [preset setObject:[NSNumber numberWithInt:2] forKey:@"PictureDecomb"];
958 /* Set crop settings here */
959 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
960 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
961 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
962 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
963 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
965 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
966 * not listed will be set to "None" and not encoded */
967 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
970 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
971 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
972 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
973 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
974 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
975 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
976 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
977 [audioTrack1Array autorelease];
978 [audioListArray addObject:audioTrack1Array];
981 NSMutableDictionary *audioTrack2Array = [[NSMutableDictionary alloc] init];
982 [audioTrack2Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
983 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioEncoder"];
984 [audioTrack2Array setObject:@"AC3 Passthru" forKey:@"AudioMixdown"];
985 [audioTrack2Array setObject:@"Auto" forKey:@"AudioSamplerate"];
986 [audioTrack2Array setObject:@"160" forKey:@"AudioBitrate"];
987 /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
988 * the sources bitrate, however we need to initially set the value to something so
989 * the macgui doesnt barf, so 160 seems as good as anything */
990 [audioTrack2Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
991 [audioTrack2Array autorelease];
992 [audioListArray addObject:audioTrack2Array];
994 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
997 [preset setObject:@"None" forKey:@"Subtitles"];
999 [preset autorelease];
1003 - (NSDictionary *)createiPhonePreset
1005 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1007 /* Get the New Preset Name from the field in the AddPresetPanel */
1008 [preset setObject:@"iPhone & iPod Touch" forKey:@"PresetName"];
1010 /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1011 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1013 /*Set whether or not this is default, at creation set to 0*/
1014 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1016 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1017 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1019 /* Get the New Preset Description from the field in the AddPresetPanel */
1020 [preset setObject:@"HandBrake's settings for all iPhones and iPod Touches going back to the original iPhone 2G." forKey:@"PresetDescription"];
1023 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1025 /* Chapter Markers*/
1026 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1029 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1030 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Mp4iPodCompatible"];
1031 /* x264 Option String */
1032 [preset setObject:@"cabac=0:ref=2:me=umh:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0" forKey:@"x264Option"];
1035 [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
1036 [preset setObject:@"700" forKey:@"VideoTargetSize"];
1037 [preset setObject:@"960" forKey:@"VideoAvgBitrate"];
1038 [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
1040 /* Video framerate */
1041 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1044 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1046 /* 2 Pass Encoding */
1047 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1049 /*Picture Settings*/
1050 /* Use a width of 480 for the iPhone*/
1051 [preset setObject:[NSNumber numberWithInt:480] forKey:@"PictureWidth"];
1052 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1053 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
1054 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
1056 /* Explicitly set the filters for built-in presets */
1057 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1058 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1059 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1060 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1061 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1062 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1064 /* Set crop settings here */
1065 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1066 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1067 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1068 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1069 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1070 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1072 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1073 * not listed will be set to "None" and not encoded */
1074 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
1077 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
1078 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
1079 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
1080 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
1081 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
1082 [audioTrack1Array setObject:@"128" forKey:@"AudioBitrate"];
1083 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
1084 [audioTrack1Array autorelease];
1085 [audioListArray addObject:audioTrack1Array];
1087 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
1090 [preset setObject:@"None" forKey:@"Subtitles"];
1092 [preset autorelease];
1096 - (NSDictionary *)createiPhoneLegacyPreset
1098 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1100 /* Get the New Preset Name from the field in the AddPresetPanel */
1101 [preset setObject:@"iPhone Legacy" forKey:@"PresetName"];
1103 /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1104 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1106 /*Set whether or not this is default, at creation set to 0*/
1107 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1109 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1110 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1112 /* Get the New Preset Description from the field in the AddPresetPanel */
1113 [preset setObject:@"HandBrake's deprecated settings for the iPhone and iPod Touch. This is the iPhone preset from HandBrake 0.9.2, and while it is offered as a service to legacy users, it is no longer supported." forKey:@"PresetDescription"];
1116 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1118 /* Chapter Markers*/
1119 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1122 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1123 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
1124 /* x264 Option String */
1125 [preset setObject:@"level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0" forKey:@"x264Option"];
1128 [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1129 [preset setObject:@"700" forKey:@"VideoTargetSize"];
1130 [preset setObject:@"960" forKey:@"VideoAvgBitrate"];
1131 [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1133 /* Video framerate */
1134 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1137 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1139 /* 2 Pass Encoding */
1140 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1142 /*Picture Settings*/
1143 /* Use a width of 480 for the iPhone*/
1144 [preset setObject:[NSNumber numberWithInt:480] 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"];
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"];
1157 /* Set crop settings here */
1158 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1159 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1160 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1161 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1162 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1163 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1165 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1166 * not listed will be set to "None" and not encoded */
1167 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
1170 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
1171 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
1172 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
1173 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
1174 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
1175 [audioTrack1Array setObject:@"128" forKey:@"AudioBitrate"];
1176 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
1177 [audioTrack1Array autorelease];
1178 [audioListArray addObject:audioTrack1Array];
1180 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
1183 [preset setObject:@"None" forKey:@"Subtitles"];
1185 [preset autorelease];
1189 - (NSDictionary *)createIpodHighPreset
1191 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1193 /* Get the New Preset Name from the field in the AddPresetPanel */
1194 [preset setObject:@"iPod Legacy" forKey:@"PresetName"];
1196 /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1197 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1199 /*Set whether or not this is default, at creation set to 0*/
1200 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1202 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1203 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1205 /* Get the New Preset Description from the field in the AddPresetPanel */
1206 [preset setObject:@"HandBrake's high resolution settings for older 5 and 5.5G iPods. Good video quality, great for viewing on a TV using your iPod. This is the iPod High-Rez preset from 0.9.2." forKey:@"PresetDescription"];
1209 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1211 /* Chapter Markers*/
1212 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1215 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1216 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
1217 /* x264 Option String */
1218 [preset setObject:@"level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subme=6:8x8dct=0:trellis=0" forKey:@"x264Option"];
1221 [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1222 [preset setObject:@"700" forKey:@"VideoTargetSize"];
1223 [preset setObject:@"1500" forKey:@"VideoAvgBitrate"];
1224 [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1226 /* Video framerate */
1227 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1230 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1232 /* 2 Pass Encoding */
1233 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1235 /*Picture Settings*/
1236 /* Use a width of 640 for iPod TV-out */
1237 [preset setObject:[NSNumber numberWithInt:640] forKey:@"PictureWidth"];
1238 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1239 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
1240 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
1242 /* Explicitly set the filters for built-in presets */
1243 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1244 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1245 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1246 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1247 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1248 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1250 /* Set crop settings here */
1251 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1252 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1253 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1254 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1255 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1256 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1258 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1259 * not listed will be set to "None" and not encoded */
1260 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
1263 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
1264 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
1265 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
1266 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
1267 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
1268 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
1269 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
1270 [audioTrack1Array autorelease];
1271 [audioListArray addObject:audioTrack1Array];
1273 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
1276 [preset setObject:@"None" forKey:@"Subtitles"];
1278 [preset autorelease];
1282 - (NSDictionary *)createIpodLowPreset
1284 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1286 /* Get the New Preset Name from the field in the AddPresetPanel */
1287 [preset setObject:@"iPod" forKey:@"PresetName"];
1289 /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1290 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1292 /*Set whether or not this is default, at creation set to 0*/
1293 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
1295 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1296 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
1298 /* Get the New Preset Description from the field in the AddPresetPanel */
1299 [preset setObject:@"HandBrake's low resolution settings for the iPod (5G and up). Optimized for great playback on the iPod screen, with smaller file size." forKey:@"PresetDescription"];
1302 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1304 /* Chapter Markers*/
1305 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1308 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1309 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"];
1310 /* x264 Option String */
1311 [preset setObject:@"level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subme=6:8x8dct=0:trellis=0" forKey:@"x264Option"];
1314 [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
1315 [preset setObject:@"700" forKey:@"VideoTargetSize"];
1316 [preset setObject:@"700" forKey:@"VideoAvgBitrate"];
1317 [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
1319 /* Video framerate */
1320 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1323 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1325 /* 2 Pass Encoding */
1326 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1328 /*Picture Settings*/
1329 /* Use a width of 320 for the iPod screen */
1330 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1331 [preset setObject:[NSNumber numberWithInt:320] forKey:@"PictureWidth"];
1332 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1333 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
1334 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
1336 /* Explicitly set the filters for built-in presets */
1337 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1338 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1339 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1340 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1341 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1342 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1344 /* Set crop settings here */
1345 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1346 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1347 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1348 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1349 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1351 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1352 * not listed will be set to "None" and not encoded */
1353 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
1356 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
1357 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
1358 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
1359 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
1360 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
1361 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
1362 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
1363 [audioTrack1Array autorelease];
1364 [audioListArray addObject:audioTrack1Array];
1366 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
1369 [preset setObject:@"None" forKey:@"Subtitles"];
1371 [preset autorelease];
1375 - (NSDictionary *)createNormalPreset
1377 NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
1379 /* Get the New Preset Name from the field in the AddPresetPanel */
1380 [preset setObject:@"Normal" forKey:@"PresetName"];
1382 /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
1383 [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
1385 /*Set whether or not this is default, at creation set to 0*/
1386 [preset setObject:[NSNumber numberWithInt:1] forKey:@"Default"];
1388 /*Get the whether or not to apply pic settings in the AddPresetPanel*/
1389 [preset setObject:[NSNumber numberWithInt:2] forKey:@"UsesPictureSettings"];
1391 /* Get the New Preset Description from the field in the AddPresetPanel */
1392 [preset setObject:@"HandBrake's normal, default settings." forKey:@"PresetDescription"];
1395 [preset setObject:@"MP4 file" forKey:@"FileFormat"];
1397 /* Chapter Markers*/
1398 [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
1401 [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
1403 /* x264 Option String */
1404 [preset setObject:@"ref=2:bframes=2:subme=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0" forKey:@"x264Option"];
1407 [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
1408 [preset setObject:@"700" forKey:@"VideoTargetSize"];
1409 [preset setObject:@"1500" forKey:@"VideoAvgBitrate"];
1410 [preset setObject:[NSNumber numberWithFloat:20.0] forKey:@"VideoQualitySlider"];
1412 /* Video framerate */
1413 [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
1416 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
1418 /* 2 Pass Encoding */
1419 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
1420 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTurboTwoPass"];
1422 /*Picture Settings*/
1423 /* Use Max Picture settings for whatever the dvd is.*/
1424 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
1425 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
1426 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
1427 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
1428 [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
1430 /* Explicitly set the filters for built-in presets */
1431 [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
1432 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
1433 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
1434 [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
1435 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
1436 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
1438 /* Set crop settings here */
1439 /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
1440 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
1441 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
1442 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
1443 [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
1445 /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
1446 * not listed will be set to "None" and not encoded */
1447 NSMutableArray *audioListArray = [[NSMutableArray alloc] init];
1450 NSMutableDictionary *audioTrack1Array = [[NSMutableDictionary alloc] init];
1451 [audioTrack1Array setObject:[NSNumber numberWithInt:1] forKey:@"AudioTrack"];
1452 [audioTrack1Array setObject:@"AAC (faac)" forKey:@"AudioEncoder"];
1453 [audioTrack1Array setObject:@"Dolby Pro Logic II" forKey:@"AudioMixdown"];
1454 [audioTrack1Array setObject:@"Auto" forKey:@"AudioSamplerate"];
1455 [audioTrack1Array setObject:@"160" forKey:@"AudioBitrate"];
1456 [audioTrack1Array setObject:[NSNumber numberWithFloat:0.0] forKey:@"AudioTrackDRCSlider"];
1457 [audioTrack1Array autorelease];
1458 [audioListArray addObject:audioTrack1Array];
1460 [preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
1463 [preset setObject:@"None" forKey:@"Subtitles"];
1465 [preset autorelease];