]> granicus.if.org Git - handbrake/commitdiff
MacGui and CLI: Finalizes built-in presets for 0.9.3
authorjbrjake <jb.rubin@gmail.com>
Thu, 20 Nov 2008 17:08:09 +0000 (17:08 +0000)
committerjbrjake <jb.rubin@gmail.com>
Thu, 20 Nov 2008 17:08:09 +0000 (17:08 +0000)
- Adds a Legacy folder nested inside the Apple folder, which holds 0.9.2's AppleTV preset, the old iPod High-Rez preset (iPod Legacy), and the old iPhone preset.
- The standard iPhone preset has ben changed to CRF, loses the iPod 5.5G atom since its prescence was misleading (the preset doesn't employ VBV controls), and gains 2 mixed reference frames.
- The new AppleTV preset has been slightly nerfed down to subme 7 from subme 9.
- The iPod Classic and Nano preset (formerly known as iPod Low-Rez) has been retitled to simply iPod as it is compatible with the older 5G models.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1934 b64f7644-9d1e-0410-96f1-a4d463321fa5

macosx/HBPresets.h
macosx/HBPresets.m
test/test.c

index e91041b6675411c046b77e6bdb04febab010e9c8..59d2774ab39f0d25bab7a26e4a585779239892bb 100644 (file)
@@ -14,7 +14,6 @@
 
 /* Built-In Preset Dictionaries (one for each built in preset) */
 - (NSDictionary *)createApplePresetFolder;
-- (NSDictionary *)createAppleIpodFamilyPresetFolder;
 - (NSDictionary *)createBasicPresetFolder;
 - (NSDictionary *)createGamingConsolesPresetFolder;
 - (NSDictionary *)createHiProfilePresetFolder;
 - (NSDictionary *)create360Preset;
 - (NSDictionary *)createAnimationPreset;
 - (NSDictionary *)createAppleTVPreset;
+- (NSDictionary *)createAppleTVLegacuPreset;
 - (NSDictionary *)createAppleUniversalPreset;
 - (NSDictionary *)createClassicPreset;
 - (NSDictionary *)createCRFPreset;
 - (NSDictionary *)createFilmPreset;
 - (NSDictionary *)createiPhonePreset;
+- (NSDictionary *)createiPhoneLegacyPreset;
 - (NSDictionary *)createIpodHighPreset;
 - (NSDictionary *)createIpodLowPreset;
 - (NSDictionary *)createNormalPreset;
index 83e84b29daa049dd453cdcf8b9afa7c62d3d604c..08054a3a37c82b04b671997c2045fc9ef3c2bade 100644 (file)
     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
     /* we actually call the methods for the nests here */
     [childrenArray addObject:[self createAppleUniversalPreset]];
+    [childrenArray addObject:[self createIpodLowPreset]];
+    [childrenArray addObject:[self createiPhonePreset]];
     [childrenArray addObject:[self createAppleTVPreset]];
-    [childrenArray addObject:[self createAppleIpodFamilyPresetFolder]];
     [childrenArray addObject:[self createQuickTimePreset]];
+    [childrenArray addObject:[self createLegacyPresetFolder]];
+
     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
     
     [childrenArray autorelease];
@@ -73,7 +76,7 @@
     return preset;
 }
 
-- (NSDictionary *)createAppleIpodFamilyPresetFolder
+- (NSDictionary *)createGamingConsolesPresetFolder
 {
     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
 /*Set whether or not this is a folder, 1 is bool for folder*/
@@ -81,7 +84,7 @@
 
 
     /* Get the New Preset Name from the field in the AddPresetPanel */
-    [preset setObject:@"iPod & iPhone" forKey:@"PresetName"];
+    [preset setObject:@"Gaming Consoles" forKey:@"PresetName"];
 
     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
      may contain folders and presets alike, etc.*/
     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
     /* we actually call the methods for the nests here */
-    [childrenArray addObject:[self createIpodLowPreset]];
-    [childrenArray addObject:[self createiPhonePreset]];
-    [childrenArray addObject:[self createIpodHighPreset]];
-    
+    [childrenArray addObject:[self createPSPPreset]];
+    [childrenArray addObject:[self createPSThreePreset]];
+    [childrenArray addObject:[self create360Preset]];
     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
     
     [childrenArray autorelease];
     return preset;
 }
 
-- (NSDictionary *)createGamingConsolesPresetFolder
+
+- (NSDictionary *)createBasicPresetFolder
 {
     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
 /*Set whether or not this is a folder, 1 is bool for folder*/
 
 
     /* Get the New Preset Name from the field in the AddPresetPanel */
-    [preset setObject:@"Gaming Consoles" forKey:@"PresetName"];
+    [preset setObject:@"Basic" forKey:@"PresetName"];
 
     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
      may contain folders and presets alike, etc.*/
     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
     /* we actually call the methods for the nests here */
-    [childrenArray addObject:[self createPSPPreset]];
-    [childrenArray addObject:[self createPSThreePreset]];
-    [childrenArray addObject:[self create360Preset]];
+    [childrenArray addObject:[self createNormalPreset]];
+    [childrenArray addObject:[self createClassicPreset]];
     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
     
     [childrenArray autorelease];
     return preset;
 }
 
-
-- (NSDictionary *)createBasicPresetFolder
+- (NSDictionary *)createHiProfilePresetFolder
 {
     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
 /*Set whether or not this is a folder, 1 is bool for folder*/
 
 
     /* Get the New Preset Name from the field in the AddPresetPanel */
-    [preset setObject:@"Basic" forKey:@"PresetName"];
+    [preset setObject:@"High Profile" forKey:@"PresetName"];
 
     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
      may contain folders and presets alike, etc.*/
     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
     /* we actually call the methods for the nests here */
-    [childrenArray addObject:[self createNormalPreset]];
-    [childrenArray addObject:[self createClassicPreset]];
+    [childrenArray addObject:[self createAnimationPreset]];
+    [childrenArray addObject:[self createCRFPreset]];
+    [childrenArray addObject:[self createFilmPreset]];
+    [childrenArray addObject:[self createTelevisionPreset]];
     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
     
     [childrenArray autorelease];
-
-
-
     [preset autorelease];
     return preset;
 }
 
-- (NSDictionary *)createHiProfilePresetFolder
+- (NSDictionary *)createLegacyPresetFolder
 {
     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
 /*Set whether or not this is a folder, 1 is bool for folder*/
 
 
     /* Get the New Preset Name from the field in the AddPresetPanel */
-    [preset setObject:@"High Profile" forKey:@"PresetName"];
+    [preset setObject:@"Legacy" forKey:@"PresetName"];
 
     /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
      may contain folders and presets alike, etc.*/
     NSMutableArray *childrenArray = [[NSMutableArray alloc] init];
     /* we actually call the methods for the nests here */
-    [childrenArray addObject:[self createAnimationPreset]];
-    [childrenArray addObject:[self createCRFPreset]];
-    [childrenArray addObject:[self createFilmPreset]];
-    [childrenArray addObject:[self createTelevisionPreset]];
+    [childrenArray addObject:[self createAppleTVLegacyPreset]];
+    [childrenArray addObject:[self createiPhoneLegacyPreset]];
+    [childrenArray addObject:[self createIpodHighPreset]];
     [preset setObject:[NSMutableArray arrayWithArray: childrenArray] forKey:@"ChildrenArray"];
     
     [childrenArray autorelease];
+
+
+
     [preset autorelease];
     return preset;
 }
     [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
 
     /* x264 Option String (We can use this to tweak the appleTV output)*/
-    [preset setObject:@"level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=9:analyse=all" forKey:@"x264Option"];
+    [preset setObject:@"level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=7:analyse=all" forKey:@"x264Option"];
 
     /* Video quality */
     [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
     return preset;
 }
 
+- (NSDictionary *)createAppleTVLegacyPreset
+{
+    NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
+
+    /* Get the New Preset Name from the field in the AddPresetPanel */
+    [preset setObject:@"AppleTV Legacy" forKey:@"PresetName"];
+
+    /*Set whether or not this is a user preset where 0 is factory, 1 is user*/
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
+
+    /*Set whether or not this is default, at creation set to 0*/
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
+
+    /*Get the whether or not to apply pic settings in the AddPresetPanel*/
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
+
+    /* Get the New Preset Description from the field in the AddPresetPanel */
+    [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"];
+
+    /* File Format */
+    [preset setObject:@"MP4 file" forKey:@"FileFormat"];
+
+    /* 64-bit MP4 file */
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4LargeFile"];
+
+    /* Chapter Markers*/
+     [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
+
+    /* Video encoder */
+    [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
+
+    /* x264 Option String (We can use this to tweak the appleTV output)*/
+    [preset setObject:@"bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=1:cabac=0" forKey:@"x264Option"];
+
+    /* Video quality */
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
+    [preset setObject:@"700" forKey:@"VideoTargetSize"];
+    [preset setObject:@"2500" forKey:@"VideoAvgBitrate"];
+    [preset setObject:[NSNumber numberWithFloat:0.6471] forKey:@"VideoQualitySlider"];
+
+    /* Video framerate */
+    [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
+
+    /* GrayScale */
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
+
+    /* 2 Pass Encoding */
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
+
+    /* Basic Picture Settings */
+    /* Use Max Picture settings for whatever the dvd is.*/
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesMaxPictureSettings"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
+
+    /* Explicitly set the filters for built-in presets */
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
+
+    /* Set crop settings here */
+    /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
+
+    /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
+     * not listed will be set to "None" and not encoded */
+   
+    /* Track 1 */
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
+    [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
+    [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
+    [preset setObject:@"48" forKey:@"Audio1Samplerate"];
+    [preset setObject:@"160" forKey:@"Audio1Bitrate"];
+    [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
+
+    /* Track 2 */
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio2Track"];
+    [preset setObject:@"AC3 Passthru" forKey:@"Audio2Encoder"];
+    [preset setObject:@"AC3 Passthru" forKey:@"Audio2Mixdown"];
+    [preset setObject:@"Auto" forKey:@"Audio2Samplerate"];
+    /* Note: we ignore specified bitrate for AC3 Passthru in libhb and use
+     * the sources bitrate, however we need to initially set the value to something so
+     * the macgui doesnt barf, so 160 seems as good as anything */
+    [preset setObject:@"160" forKey:@"Audio2Bitrate"];
+    [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio2TrackDRCSlider"];
+
+    /* Subtitles*/
+    [preset setObject:@"None" forKey:@"Subtitles"];
+
+    [preset autorelease];
+    return preset;
+}
+
 - (NSDictionary *)createAppleUniversalPreset
 {
     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
     /* File Format */
     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
 
+    /* Chapter Markers*/
+     [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
+
+    /* Video encoder */
+    [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"Mp4iPodCompatible"];
+    /* x264 Option String */
+    [preset setObject:@"level=30:cabac=0:ref=2:mixed-refs:analyse=all:me=umh:no-fast-pskip=1" forKey:@"x264Option"];
+
+    /* Video quality */
+    [preset setObject:[NSNumber numberWithInt:2] forKey:@"VideoQualityType"];
+    [preset setObject:@"700" forKey:@"VideoTargetSize"];
+    [preset setObject:@"960" forKey:@"VideoAvgBitrate"];
+    [preset setObject:[NSNumber numberWithFloat:0.59] forKey:@"VideoQualitySlider"];
+
+    /* Video framerate */
+    [preset setObject:@"Same as source" forKey:@"VideoFramerate"];
+
+    /* GrayScale */
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoGrayScale"];
+
+    /* 2 Pass Encoding */
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"VideoTwoPass"];
+
+    /*Picture Settings*/
+    /* Use a width of 480 for the iPhone*/
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"UsesMaxPictureSettings"];
+    [preset setObject:[NSNumber numberWithInt:480] forKey:@"PictureWidth"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
+
+    /* Explicitly set the filters for built-in presets */
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeblock"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDetelecine"];
+
+    /* Set crop settings here */
+    /* The Auto Crop Matrix in the Picture Window autodetects differences in crop settings */
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureAutoCrop"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureTopCrop"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureBottomCrop"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureLeftCrop"];
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureRightCrop"];
+
+    /* Audio - Is done on a track by track basis, ONLY specifiy the tracks we want set as any track
+     * not listed will be set to "None" and not encoded */
+    
+    /* Track 1 */
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"Audio1Track"];
+    [preset setObject:@"AAC (faac)" forKey:@"Audio1Encoder"];
+    [preset setObject:@"Dolby Pro Logic II" forKey:@"Audio1Mixdown"];
+    [preset setObject:@"48" forKey:@"Audio1Samplerate"];
+    [preset setObject:@"128" forKey:@"Audio1Bitrate"];
+    [preset setObject:[NSNumber numberWithFloat:1.0] forKey:@"Audio1TrackDRCSlider"];
+
+    /* Subtitles*/
+    [preset setObject:@"None" forKey:@"Subtitles"];
+
+    [preset autorelease];
+    return preset;
+}
+
+- (NSDictionary *)createiPhoneLegacyPreset
+{
+    NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
+
+    /* Get the New Preset Name from the field in the AddPresetPanel */
+    [preset setObject:@"iPhone Legacy" forKey:@"PresetName"];
+
+    /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
+
+    /*Set whether or not this is default, at creation set to 0*/
+    [preset setObject:[NSNumber numberWithInt:0] forKey:@"Default"];
+
+    /*Get the whether or not to apply pic settings in the AddPresetPanel*/
+    [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
+
+    /* Get the New Preset Description from the field in the AddPresetPanel */
+    [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 supported." forKey:@"PresetDescription"];
+
+    /* File Format */
+    [preset setObject:@"MP4 file" forKey:@"FileFormat"];
+
     /* Chapter Markers*/
      [preset setObject:[NSNumber numberWithInt:1] forKey:@"ChapterMarkers"];
 
     [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
 
     /* Get the New Preset Description from the field in the AddPresetPanel */
-    [preset setObject:@"HandBrake's high resolution settings for older 5 and 5.5G iPods. Good video quality, great for viewing on a TV using your iPod" forKey:@"PresetDescription"];
+    [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"];
 
     /* File Format */
     [preset setObject:@"MP4 file" forKey:@"FileFormat"];
     NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
 
     /* Get the New Preset Name from the field in the AddPresetPanel */
-    [preset setObject:@"iPod Classic & iPod Nano" forKey:@"PresetName"];
+    [preset setObject:@"iPod" forKey:@"PresetName"];
 
     /*Set whether or not this is a user preset or factory 0 is factory, 1 is user*/
     [preset setObject:[NSNumber numberWithInt:0] forKey:@"Type"];
index 419e39b0731f316c89ce3796ddffd3bf37892239..59cf0eb0b3403a72504205324ce0c1608265cbb2 100644 (file)
@@ -511,6 +511,74 @@ static int HandleEvents( hb_handle_t * h )
                     job->chapter_markers = 1;
                 }
 
+                if (!strcmp(preset_name, "iPod"))
+                {
+                    mux = HB_MUX_MP4;
+                    job->ipod_atom = 1;
+                    vcodec = HB_VCODEC_X264;
+                    job->vbitrate = 700;
+                    if( !atracks )
+                    {
+                        atracks = strdup("1");
+                    }
+                    if( !abitrates )
+                    {
+                        abitrates = strdup("160");
+                    }
+                    if( !arates )
+                    {
+                        arates = strdup("48");
+                    }
+                    if( !acodecs )
+                    {
+                        acodecs = strdup("faac");
+                    }
+                    if( !mixdowns )
+                    {
+                        mixdowns = strdup("dpl2");
+                    }
+                    maxWidth = 320;
+                    if( !x264opts )
+                    {
+                        x264opts = strdup("level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1");
+                    }
+                    job->chapter_markers = 1;
+                }
+
+                if (!strcmp(preset_name, "iPhone & iPod Touch"))
+                {
+                    mux = HB_MUX_MP4;
+                    vcodec = HB_VCODEC_X264;
+                    job->vquality = 0.589999973773956;
+                    job->crf = 1;
+                    if( !atracks )
+                    {
+                        atracks = strdup("1");
+                    }
+                    if( !abitrates )
+                    {
+                        abitrates = strdup("128");
+                    }
+                    if( !arates )
+                    {
+                        arates = strdup("48");
+                    }
+                    if( !acodecs )
+                    {
+                        acodecs = strdup("faac");
+                    }
+                    if( !mixdowns )
+                    {
+                        mixdowns = strdup("dpl2");
+                    }
+                    maxWidth = 480;
+                    if( !x264opts )
+                    {
+                        x264opts = strdup("level=30:cabac=0:ref=2:mixed-refs:analyse=all:me=umh:no-fast-pskip=1");
+                    }
+                    job->chapter_markers = 1;
+                }
+
                 if (!strcmp(preset_name, "AppleTV"))
                 {
                     mux = HB_MUX_MP4;
@@ -541,18 +609,17 @@ static int HandleEvents( hb_handle_t * h )
                     maxWidth = 960;
                     if( !x264opts )
                     {
-                        x264opts = strdup("level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=9:analyse=all");
+                        x264opts = strdup("level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=7:analyse=all");
                     }
                     pixelratio = 2;
                     job->chapter_markers = 1;
                 }
 
-                if (!strcmp(preset_name, "iPod Classic & iPod Nano"))
+                if (!strcmp(preset_name, "QuickTime"))
                 {
                     mux = HB_MUX_MP4;
-                    job->ipod_atom = 1;
                     vcodec = HB_VCODEC_X264;
-                    job->vbitrate = 700;
+                    job->vbitrate = 1800;
                     if( !atracks )
                     {
                         atracks = strdup("1");
@@ -563,7 +630,7 @@ static int HandleEvents( hb_handle_t * h )
                     }
                     if( !arates )
                     {
-                        arates = strdup("48");
+                        arates = strdup("Auto");
                     }
                     if( !acodecs )
                     {
@@ -573,61 +640,63 @@ static int HandleEvents( hb_handle_t * h )
                     {
                         mixdowns = strdup("dpl2");
                     }
-                    maxWidth = 320;
                     if( !x264opts )
                     {
-                        x264opts = strdup("level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1");
+                        x264opts = strdup("ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip=1:psy-rd=1,1");
                     }
+                    pixelratio = 1;
                     job->chapter_markers = 1;
+                    twoPass = 1;
+                    turbo_opts_enabled = 1;
                 }
 
-                if (!strcmp(preset_name, "iPhone & iPod Touch"))
+                if (!strcmp(preset_name, "AppleTV Legacy"))
                 {
                     mux = HB_MUX_MP4;
-                    job->ipod_atom = 1;
+                    job->largeFileSize = 1;
                     vcodec = HB_VCODEC_X264;
-                    job->vbitrate = 960;
+                    job->vbitrate = 2500;
                     if( !atracks )
                     {
-                        atracks = strdup("1");
+                        atracks = strdup("1,1");
                     }
                     if( !abitrates )
                     {
-                        abitrates = strdup("128");
+                        abitrates = strdup("160,auto");
                     }
                     if( !arates )
                     {
-                        arates = strdup("48");
+                        arates = strdup("48,Auto");
                     }
                     if( !acodecs )
                     {
-                        acodecs = strdup("faac");
+                        acodecs = strdup("faac,ac3");
                     }
                     if( !mixdowns )
                     {
-                        mixdowns = strdup("dpl2");
+                        mixdowns = strdup("dpl2,auto");
                     }
-                    maxWidth = 480;
                     if( !x264opts )
                     {
-                        x264opts = strdup("level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1");
+                        x264opts = strdup("bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=1:cabac=0");
                     }
+                    pixelratio = 1;
                     job->chapter_markers = 1;
                 }
 
-                if (!strcmp(preset_name, "iPod Legacy"))
+                if (!strcmp(preset_name, "iPhone Legacy"))
                 {
                     mux = HB_MUX_MP4;
                     job->ipod_atom = 1;
                     vcodec = HB_VCODEC_X264;
-                    job->vbitrate = 1500;
+                    job->vbitrate = 960;
                     if( !atracks )
                     {
                         atracks = strdup("1");
                     }
                     if( !abitrates )
                     {
-                        abitrates = strdup("160");
+                        abitrates = strdup("128");
                     }
                     if( !arates )
                     {
@@ -641,19 +710,20 @@ static int HandleEvents( hb_handle_t * h )
                     {
                         mixdowns = strdup("dpl2");
                     }
-                    maxWidth = 640;
+                    maxWidth = 480;
                     if( !x264opts )
                     {
-                        x264opts = strdup("level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1");
+                        x264opts = strdup("level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1");
                     }
                     job->chapter_markers = 1;
                 }
 
-                if (!strcmp(preset_name, "QuickTime"))
+                if (!strcmp(preset_name, "iPod Legacy"))
                 {
                     mux = HB_MUX_MP4;
+                    job->ipod_atom = 1;
                     vcodec = HB_VCODEC_X264;
-                    job->vbitrate = 1800;
+                    job->vbitrate = 1500;
                     if( !atracks )
                     {
                         atracks = strdup("1");
@@ -664,7 +734,7 @@ static int HandleEvents( hb_handle_t * h )
                     }
                     if( !arates )
                     {
-                        arates = strdup("Auto");
+                        arates = strdup("48");
                     }
                     if( !acodecs )
                     {
@@ -674,14 +744,12 @@ static int HandleEvents( hb_handle_t * h )
                     {
                         mixdowns = strdup("dpl2");
                     }
+                    maxWidth = 640;
                     if( !x264opts )
                     {
-                        x264opts = strdup("ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip=1:psy-rd=1,1");
+                        x264opts = strdup("level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1");
                     }
-                    pixelratio = 1;
                     job->chapter_markers = 1;
-                    twoPass = 1;
-                    turbo_opts_enabled = 1;
                 }
 
                 if (!strcmp(preset_name, "Normal"))
@@ -983,7 +1051,7 @@ static int HandleEvents( hb_handle_t * h )
                         x264opts = strdup("level=40:ref=2:mixed-refs:bframes=3:weightb:subme=9:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1");
                     }
                     pixelratio = 1;
-                }
+                    }
             }
 
                        if ( chapter_markers )
@@ -1948,20 +2016,24 @@ static void ShowPresets()
 
     printf("\n   + Universal:  -e x264  -q 0.589999973773956 -a 1,1 -E faac,ac3 -B 160,auto -R 48,Auto -6 dpl2,auto -f mp4 -X 720 -P -m -x level=30:cabac=0:ref=3:mixed-refs=1:analyse=all:me=umh:no-fast-pskip=1\n");
 
-    printf("\n   + AppleTV:  -e x264  -q 0.589999973773956 -a 1,1 -E faac,ac3 -B 160,auto -R 48,Auto -6 dpl2,auto -f mp4 -4 -X 960 -P -m -x level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=9:analyse=all\n");
+    printf("\n   + iPod:  -e x264  -b 700 -a 1 -E faac -B 160 -R 48 -6 dpl2 -f mp4 -I -X 320 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1\n");
 
-    printf("\n   << iPod & iPhone\n");
+    printf("\n   + iPhone & iPod Touch:  -e x264  -q 0.589999973773956 -a 1 -E faac -B 128 -R 48 -6 dpl2 -f mp4 -X 480 -m -x level=30:cabac=0:ref=2:mixed-refs:analyse=all:me=umh:no-fast-pskip=1\n");
 
-    printf("\n      + iPod Classic & iPod Nano:  -e x264  -b 700 -a 1 -E faac -B 160 -R 48 -6 dpl2 -f mp4 -I -X 320 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1\n");
+    printf("\n   + AppleTV:  -e x264  -q 0.589999973773956 -a 1,1 -E faac,ac3 -B 160,auto -R 48,Auto -6 dpl2,auto -f mp4 -4 -X 960 -P -m -x level=30:cabac=0:ref=3:mixed-refs=1:bframes=6:weightb=1:direct=auto:no-fast-pskip=1:me=umh:subq=7:analyse=all\n");
 
-    printf("\n      + iPhone & iPod Touch:  -e x264  -b 960 -a 1 -E faac -B 128 -R 48 -6 dpl2 -f mp4 -I -X 480 -m -x level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1\n");
+    printf("\n   + QuickTime:  -e x264  -b 1800 -a 1 -E faac -B 160 -R Auto -6 dpl2 -f mp4 -p -m -2 -T -x ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip=1:psy-rd=1,1\n");
+
+    printf("\n   << Legacy\n");
+
+    printf("\n      + AppleTV Legacy:  -e x264  -b 2500 -a 1,1 -E faac,ac3 -B 160,auto -R 48,Auto -6 dpl2,auto -f mp4 -4 -p -m -x bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=1:cabac=0\n");
+
+    printf("\n      + iPhone Legacy:  -e x264  -b 960 -a 1 -E faac -B 128 -R 48 -6 dpl2 -f mp4 -I -X 480 -m -x level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1\n");
 
     printf("\n      + iPod Legacy:  -e x264  -b 1500 -a 1 -E faac -B 160 -R 48 -6 dpl2 -f mp4 -I -X 640 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1\n");
 
     printf("\n   >>\n");
 
-    printf("\n   + QuickTime:  -e x264  -b 1800 -a 1 -E faac -B 160 -R Auto -6 dpl2 -f mp4 -p -m -2 -T -x ref=3:mixed-refs:bframes=3:weightb:direct=auto:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip=1:psy-rd=1,1\n");
-
     printf("\n>\n");
 
     printf("\n< Basic\n");
@@ -1993,6 +2065,7 @@ static void ShowPresets()
     printf("\n   + Xbox 360:  -e x264  -b 2000 -a 1 -E faac -B 160 -R 48 -6 dpl2 -f mp4 -p -x level=40:ref=2:mixed-refs:bframes=3:weightb:subme=9:direct=auto:b-pyramid:me=umh:analyse=all:no-fast-pskip:filter=-2,-1\n");
 
     printf("\n>\n");
+
 }
 
 /****************************************************************************