diff options
-rw-r--r-- | macosx/HBPresets.h | 3 | ||||
-rw-r--r-- | macosx/HBPresets.m | 249 | ||||
-rw-r--r-- | test/test.c | 145 |
3 files changed, 331 insertions, 66 deletions
diff --git a/macosx/HBPresets.h b/macosx/HBPresets.h index e91041b66..59d2774ab 100644 --- a/macosx/HBPresets.h +++ b/macosx/HBPresets.h @@ -14,7 +14,6 @@ /* Built-In Preset Dictionaries (one for each built in preset) */ - (NSDictionary *)createApplePresetFolder; -- (NSDictionary *)createAppleIpodFamilyPresetFolder; - (NSDictionary *)createBasicPresetFolder; - (NSDictionary *)createGamingConsolesPresetFolder; - (NSDictionary *)createHiProfilePresetFolder; @@ -22,11 +21,13 @@ - (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; diff --git a/macosx/HBPresets.m b/macosx/HBPresets.m index 83e84b29d..08054a3a3 100644 --- a/macosx/HBPresets.m +++ b/macosx/HBPresets.m @@ -60,9 +60,12 @@ 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"]; @@ -94,10 +97,9 @@ 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]; @@ -108,7 +110,8 @@ return preset; } -- (NSDictionary *)createGamingConsolesPresetFolder + +- (NSDictionary *)createBasicPresetFolder { NSMutableDictionary *preset = [[NSMutableDictionary alloc] init]; /*Set whether or not this is a folder, 1 is bool for folder*/ @@ -116,7 +119,7 @@ /* 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"]; @@ -129,9 +132,8 @@ 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]; @@ -142,8 +144,7 @@ return preset; } - -- (NSDictionary *)createBasicPresetFolder +- (NSDictionary *)createHiProfilePresetFolder { NSMutableDictionary *preset = [[NSMutableDictionary alloc] init]; /*Set whether or not this is a folder, 1 is bool for folder*/ @@ -151,7 +152,7 @@ /* 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"]; @@ -164,19 +165,18 @@ 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*/ @@ -184,7 +184,7 @@ /* 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"]; @@ -197,13 +197,15 @@ 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; } @@ -427,7 +429,7 @@ [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"]; @@ -497,6 +499,107 @@ 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]; @@ -899,6 +1002,94 @@ /* 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"]; + + /* Video encoder */ + [preset setObject:@"H.264 (x264)" forKey:@"VideoEncoder"]; [preset setObject:[NSNumber numberWithInt:1] forKey:@"Mp4iPodCompatible"]; /* x264 Option String */ [preset setObject:@"level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:trellis=1" forKey:@"x264Option"]; @@ -977,7 +1168,7 @@ [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"]; @@ -1053,7 +1244,7 @@ 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"]; diff --git a/test/test.c b/test/test.c index 419e39b07..59cf0eb0b 100644 --- a/test/test.c +++ b/test/test.c @@ -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"); + } /**************************************************************************** |