OSDN Git Service

Adds a preset for the 360, accounts for filters in the presets, updates manicure...
authorjbrjake <jbrjake@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 8 Dec 2007 21:43:00 +0000 (21:43 +0000)
committerjbrjake <jbrjake@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 8 Dec 2007 21:43:00 +0000 (21:43 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@1110 b64f7644-9d1e-0410-96f1-a4d463321fa5

macosx/HBPresets.h
macosx/HBPresets.m
scripts/manicure.rb
test/test.c

index 0ab2d39..d40ce0e 100644 (file)
@@ -31,4 +31,6 @@
 - (NSDictionary *)createBrokePreset;
 - (NSDictionary *)createBlindPreset;
 - (NSDictionary *)createCRFPreset;
+- (NSDictionary *)create360Preset;
+
 @end
index e4d8036..a0388a1 100644 (file)
@@ -36,6 +36,8 @@
     [UserPresets addObject:[self createBrokePreset]];
     [UserPresets addObject:[self createBlindPreset]];
     [UserPresets addObject:[self createCRFPreset]];
+    [UserPresets addObject:[self create360Preset]];
+
     /* return the newly regenerated preset array back to Controller.mm */
     return UserPresets;
 }
@@ -68,7 +70,7 @@
        /* Video encoder */
        [preset setObject:@"x264 (h.264 iPod)" forKey:@"VideoEncoder"];
        /* x264 Option String */
-       [preset setObject:@"keyint=300:keyint-min=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1" forKey:@"x264Option"];
+       [preset setObject:@"bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1" forKey:@"x264Option"];
        /* Video quality */
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
        [preset setObject:@"700" forKey:@"VideoTargetSize"];
        [preset setObject:[NSNumber numberWithInt:320] forKey:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:0] forKey:@"PictureTopCrop"];
        /* Video encoder */
        [preset setObject:@"x264 (h.264 iPod)" forKey:@"VideoEncoder"];
        /* x264 Option String */
-       [preset setObject:@"keyint=300:keyint-min=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1" forKey:@"x264Option"];
+       [preset setObject:@"bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1" forKey:@"x264Option"];
        /* Video quality */
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
        [preset setObject:@"700" forKey:@"VideoTargetSize"];
        [preset setObject:[NSNumber numberWithInt:640] forKey:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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"];
        /*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:2] forKey:@"UsesPictureSettings"];
+       [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
        /* Get the New Preset Description from the field in the AddPresetPanel */
     [preset setObject:@"HandBrake's settings for the AppleTV. Provides a good balance between quality and file size, and optimizes performance." forKey:@"PresetDescription"];
        /* File Format */
        /* Video encoder */
        [preset setObject:@"x264 (h.264 Main)" 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=2:cabac=0" forKey:@"x264Option"];
+       [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:[NSNumber numberWithInt:0] forKey:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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"];
        /*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:2] forKey:@"UsesPictureSettings"];
+       [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureSettings"];
        /* Get the New Preset Description from the field in the AddPresetPanel */
     [preset setObject:@"HandBrake's settings for the Sony PlayStation 3." forKey:@"PresetDescription"];
        /* File Format */
        [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:0] forKey:@"PictureDeinterlace"];
        [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:@"368" forKey:@"PictureWidth"];
        [preset setObject:@"208" forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:0] forKey:@"PictureTopCrop"];
        /* Video encoder */
        [preset setObject:@"x264 (h.264 Main)" forKey:@"VideoEncoder"];
        /* x264 Option String */
-       [preset setObject:@"ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:no-fast-pskip" forKey:@"x264Option"];
+       [preset setObject:@"ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip" forKey:@"x264Option"];
        /* Video quality */
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
        [preset setObject:@"700" forKey:@"VideoTargetSize"];
        [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:0] forKey:@"PictureDeinterlace"];
        [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:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureDeinterlace"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PicturePAR"];
+       
+       [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
+       [preset setObject:[NSNumber numberWithInt:3] forKey:@"PictureDeinterlace"];
+       [preset setObject:[NSNumber numberWithInt:1] 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:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureDeinterlace"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PicturePAR"];
+    
+       [preset setObject:[NSNumber numberWithInt:1] forKey:@"UsesPictureFilters"];
+       [preset setObject:[NSNumber numberWithInt:3] forKey:@"PictureDeinterlace"];
+       [preset setObject:[NSNumber numberWithInt:0] forKey:@"VFR"];
+       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDenoise"];
+       [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:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:480] forKey:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:640] forKey:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:0] forKey:@"PictureTopCrop"];
        [preset setObject:[NSNumber numberWithInt:512] forKey:@"PictureWidth"];
        [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureHeight"];
        [preset setObject:[NSNumber numberWithInt:1] forKey:@"PictureKeepRatio"];
-       [preset setObject:[NSNumber numberWithInt:0] forKey:@"PictureDeinterlace"];
        [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:0] forKey:@"PictureTopCrop"];
        [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:0] forKey:@"PictureDeinterlace"];
        [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"];
 
 }
 
+- (NSDictionary *)create360Preset
+{
+    NSMutableDictionary *preset = [[NSMutableDictionary alloc] init];
+       /* Get the New Preset Name from the field in the AddPresetPanel */
+    [preset setObject:@"Xbox 360" 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 settings for the Microsoft Xbox 360." forKey:@"PresetDescription"];
+       /* File Format */
+    [preset setObject:@"MP4 file" forKey:@"FileFormat"];
+       /* Chapter Markers*/
+        [preset setObject:[NSNumber numberWithInt:0] forKey:@"ChapterMarkers"];
+       /* Codecs */
+       [preset setObject:@"AVC/H.264 Video / AAC Audio" forKey:@"FileCodecs"];
+       /* Video encoder */
+       [preset setObject:@"x264 (h.264 Main)" forKey:@"VideoEncoder"];
+       /* x264 Option String (We can use this to tweak the appleTV output)*/
+       [preset setObject:@"level=40:ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip:filter=-2,-1" forKey:@"x264Option"];
+       /* Video quality */
+       [preset setObject:[NSNumber numberWithInt:1] forKey:@"VideoQualityType"];
+       [preset setObject:@"700" forKey:@"VideoTargetSize"];
+       [preset setObject:@"2000" 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"];
+       
+       /*Picture Settings*/
+       /* For PS3 we only want to retain UsesMaxPictureSettings
+       which depend on the source dvd picture settings, so we don't
+       record the current dvd's picture info since it will vary from
+       source to source*/
+       /* 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*/
+       /* Audio Sample Rate*/
+       [preset setObject:@"48" forKey:@"AudioSampleRate"];
+       /* Audio Bitrate Rate*/
+       [preset setObject:@"160" forKey:@"AudioBitRate"];
+       /* Subtitles*/
+       [preset setObject:@"None" forKey:@"Subtitles"];
+       
+
+    [preset autorelease];
+    return preset;
+
+}
 
 @end
index 9e6eb55..913022f 100755 (executable)
@@ -493,49 +493,49 @@ class PresetClass
 
   def generateAPIcalls(hash) # Makes a C version of the preset ready for coding into the CLI
     
-    commandString = "if (!strcmp(preset_name, \"" << hash["PresetName"] << "\"))\n{\n\t"
+    commandString = "if (!strcmp(preset_name, \"" << hash["PresetName"] << "\"))\n{\n    "
     
     #Filename suffix
     case hash["FileFormat"]
     when /MP4/
-      commandString << "mux = " << "HB_MUX_MP4;\n\t"
+      commandString << "mux = " << "HB_MUX_MP4;\n    "
     when /AVI/
-      commandString << "mux = " << "HB_MUX_AVI;\n\t"
+      commandString << "mux = " << "HB_MUX_AVI;\n    "
     when /OGM/
-      commandString << "mux = " << "HB_MUX_OGM;\n\t"
+      commandString << "mux = " << "HB_MUX_OGM;\n    "
     when /MKV/
-      commandString << "mux = " << "HB_MUX_MKV;\n\t"
+      commandString << "mux = " << "HB_MUX_MKV;\n    "
     end
     
     #Video encoder
     if hash["VideoEncoder"] != "FFmpeg"
       commandString << "vcodec = "
       if hash["VideoEncoder"] == "x264 (h.264 Main)"
-        commandString << "HB_VCODEC_X264;\n\t"
+        commandString << "HB_VCODEC_X264;\n    "
       elsif hash["VideoEncoder"] == "x264 (h.264 iPod)"
-        commandString << "HB_VCODEC_X264;\njob->h264_level = 30;\n\t"
+        commandString << "HB_VCODEC_X264;\njob->h264_level = 30;\n    "
       elsif hash["VideoEncoder"].to_s.downcase == "xvid"
-        commandString << "HB_VCODEC_XVID;\n\t"        
+        commandString << "HB_VCODEC_XVID;\n    "        
       end
     end
 
     #VideoRateControl
     case hash["VideoQualityType"].to_i
     when 0
-      commandString << "size = " << hash["VideoTargetSize"] << ";\n\t"
+      commandString << "size = " << hash["VideoTargetSize"] << ";\n    "
     when 1
-      commandString << "job->vbitrate = " << hash["VideoAvgBitrate"] << ";\n\t"
+      commandString << "job->vbitrate = " << hash["VideoAvgBitrate"] << ";\n    "
     when 2
-      commandString << "job->vquality = " << hash["VideoQualitySlider"] << ";\n\t"
-      commandString << "job->crf = 1;\n\t"
+      commandString << "job->vquality = " << hash["VideoQualitySlider"] << ";\n    "
+      commandString << "job->crf = 1;\n    "
     end
 
     #FPS
     if hash["VideoFramerate"] != "Same as source"
       if hash["VideoFramerate"] == "23.976 (NTSC Film)"
-        commandString << "job->vrate_base = " << "1126125;\n\t"
+        commandString << "job->vrate_base = " << "1126125;\n    "
       elsif hash["VideoFramerate"] == "29.97 (NTSC Video)"
-        commandString << "job->vrate_base = " << "900900;\n\t"
+        commandString << "job->vrate_base = " << "900900;\n    "
       # Gotta add the rest of the framerates for completion's sake.
       end
     end
@@ -543,7 +543,7 @@ class PresetClass
     # Only include samplerate and bitrate when not performing AC3 passthru
     if (hash["FileCodecs"].include? "AC-3") == false
       #Audio bitrate
-      commandString << "job->abitrate = " << hash["AudioBitRate"] << ";\n\t"
+      commandString << "job->abitrate = " << hash["AudioBitRate"] << ";\n    "
     
       #Audio samplerate
       commandString << "job->arate = "
@@ -559,50 +559,50 @@ class PresetClass
       when /22.05/
         commandString << "22050"
       end
-      commandString << ";\n\t"
+      commandString << ";\n    "
     end
       
     #Audio encoder
     commandString << "acodec = "
     case hash["FileCodecs"]
     when /AAC/
-      commandString << "HB_ACODEC_FAAC;\n\t"
+      commandString << "HB_ACODEC_FAAC;\n    "
     when /AC-3/
-      commandString << "HB_ACODEC_AC3;\n\t"
+      commandString << "HB_ACODEC_AC3;\n    "
     when /Vorbis/
-      commandString << "HB_ACODEC_VORBIS;\n\t"
+      commandString << "HB_ACODEC_VORBIS;\n    "
     when /MP3/
-      commandString << "HB_ACODEC_LAME;\n\t"
+      commandString << "HB_ACODEC_LAME;\n    "
     end
     
     #Cropping
     if !hash["PictureAutoCrop"].to_i
-      commandString << "job->crop[0] = " << hash["PictureTopCrop"] << ";\n\t"
-      commandString << "job->crop[1] = " << hash["PictureBottomCrop"] << ";\n\t"
-      commandString << "job->crop[2] = " << hash["PictureLeftCrop"] << ";\n\t"
-      commandString << "job->crop[4] - " << hash["PictureRightCrop"] << ";\n\t"
+      commandString << "job->crop[0] = " << hash["PictureTopCrop"] << ";\n    "
+      commandString << "job->crop[1] = " << hash["PictureBottomCrop"] << ";\n    "
+      commandString << "job->crop[2] = " << hash["PictureLeftCrop"] << ";\n    "
+      commandString << "job->crop[4] - " << hash["PictureRightCrop"] << ";\n    "
     end
     
     #Dimensions
     if hash["PictureWidth"].to_i != 0
       commandString << "job->width = "
-      commandString << hash["PictureWidth"] << ";\n\t"
+      commandString << hash["PictureWidth"] << ";\n    "
     end
     if hash["PictureHeight"].to_i != 0
       commandString << "job->height = "
-      commandString << hash["PictureHeight"] << ";\n\t"
+      commandString << hash["PictureHeight"] << ";\n    "
     end
     
     #Subtitles
     if hash["Subtitles"] != "None"
       commandString << "job->subtitle = "
-      commandString << ( hash["Subtitles"].to_i - 1).to_s << ";\n\t"
+      commandString << ( hash["Subtitles"].to_i - 1).to_s << ";\n    "
     end
     
     #x264 Options
     if hash["x264Option"] != ""
       commandString << "x264opts = strdup(\""
-      commandString << hash["x264Option"] << "\");\n\t"
+      commandString << hash["x264Option"] << "\");\n    "
     end
     
     #Video Filters
@@ -610,41 +610,41 @@ class PresetClass
       
       case hash["PictureDeinterlace"].to_i
       when 1
-        commandString << "deinterlace = 1;\n\t"
-        commandString << "deinterlace_opt = \"-1\";\n\t"
+        commandString << "deinterlace = 1;\n    "
+        commandString << "deinterlace_opt = \"-1\";\n    "
       when 2
-        commandString << "deinterlace = 1;\n\t"
-        commandString << "deinterlace_opt = \"0\";\n\t"
+        commandString << "deinterlace = 1;\n    "
+        commandString << "deinterlace_opt = \"0\";\n    "
       when 3
-        commandString << "deinterlace = 1;\n\t"
-        commandString << "deinterlace_opt = \"2:-1:1\";\n\t"
+        commandString << "deinterlace = 1;\n    "
+        commandString << "deinterlace_opt = \"2:-1:1\";\n    "
       when 4
-        commandString << "deinterlace = 1;\n\t"
-        commandString << "deinterlace_opt = \"1:-1:1\";\n\t"
+        commandString << "deinterlace = 1;\n    "
+        commandString << "deinterlace_opt = \"1:-1:1\";\n    "
       end
       
       case hash["PictureDenoise"].to_i
       when 1
-        commandString << "denoise = 1;\n\t"
-        commandString << "denoise_opt = \"2:1:2:3\";\n\t"
+        commandString << "denoise = 1;\n    "
+        commandString << "denoise_opt = \"2:1:2:3\";\n    "
       when 2
-        commandString << "denoise = 1;\n\t"
-        commandString << "denoise_opt = \"3:2:2:3\";\n\t"
+        commandString << "denoise = 1;\n    "
+        commandString << "denoise_opt = \"3:2:2:3\";\n    "
       when 3
-        commandString << "denoise = 1;\n\t"
-        commandString << "denoise_opt = \"7:7:5:5\";\n\t"
+        commandString << "denoise = 1;\n    "
+        commandString << "denoise_opt = \"7:7:5:5\";\n    "
       end
       
-      if hash["PictureDetelecine"].to_i == 1 then commandString << "detelecine = 1;\n\t" end
-      if hash["PictureDeblock"].to_i == 1 then commandString << "deblock = 1;\n\t" end
-      if hash["VFR"].to_i == 1 then commandString << "vfr = 1;\n\t" end
+      if hash["PictureDetelecine"].to_i == 1 then commandString << "detelecine = 1;\n    " end
+      if hash["PictureDeblock"].to_i == 1 then commandString << "deblock = 1;\n    " end
+      if hash["VFR"].to_i == 1 then commandString << "vfr = 1;\n    " end
     end
     
     #Booleans
-    if hash["ChapterMarkers"].to_i == 1 then commandString << "job->chapter_markers = 1;\n\t" end
-    if hash["PicturePAR"].to_i == 1 then commandString << "pixelratio = 1;\n\t" end
-    if hash["VideoGrayScale"].to_i == 1 then commandString << "job->grayscale = 1;\n\t" end
-    if hash["VideoTwoPass"].to_i == 1 then commandString << "twoPass = 1;\n\t" end
+    if hash["ChapterMarkers"].to_i == 1 then commandString << "job->chapter_markers = 1;\n    " end
+    if hash["PicturePAR"].to_i == 1 then commandString << "pixelratio = 1;\n    " end
+    if hash["VideoGrayScale"].to_i == 1 then commandString << "job->grayscale = 1;\n    " end
+    if hash["VideoTwoPass"].to_i == 1 then commandString << "twoPass = 1;\n    " end
     if hash["VideoTurboTwoPass"].to_i == 1 then commandString << "turbo_opts_enabled = 1;\n" end
     
     commandString << "}"
@@ -657,7 +657,7 @@ class PresetClass
 
   def generateAPIList(hash) # Makes a list of the CLI options a built-in CLI preset uses, for wrappers to parse
     commandString = ""
-    commandString << "printf(\"\\n+ " << hash["PresetName"] << ": "
+    commandString << "    printf(\"\\n+ " << hash["PresetName"] << ": "
         
     #Video encoder
     if hash["VideoEncoder"] != "FFmpeg"
@@ -759,22 +759,22 @@ class PresetClass
       
       case hash["PictureDeinterlace"].to_i
       when 1
-        commandString << " --deinterlace=\"fast\""
+        commandString << " --deinterlace=\\\"fast\\\""
       when 2
-        commandString << " --deinterlace=\slow\""
+        commandString << " --deinterlace=\\\slow\\\""
       when 3
-        commandString << " --deinterlace=\"slower\""
+        commandString << " --deinterlace=\\\"slower\\\""
       when 4
-        commandString << " --deinterlace=\"slowest\""
+        commandString << " --deinterlace=\\\"slowest\\\""
       end
       
       case hash["PictureDenoise"].to_i
       when 1
-        commandString << " --denoise=\"weak\""
+        commandString << " --denoise=\\\"weak\\\""
       when 2
-        commandString << " --denoise=\"medium\""
+        commandString << " --denoise=\\\"medium\\\""
       when 3
-        commandString << " --denoise=\"strong\""
+        commandString << " --denoise=\\\"strong\\\""
       end
       
       if hash["PictureDetelecine"].to_i == 1 then commandString << " --detelecine" end
index d49d29d..747d3a1 100644 (file)
@@ -413,8 +413,9 @@ static int HandleEvents( hb_handle_t * h )
                     job->arate = 48000;
                     acodec = HB_ACODEC_FAAC;
                     x264opts = strdup("ref=5:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=5:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2");
+                    deinterlace = 1;
+                    deinterlace_opt = "2:-1:1";
                     job->chapter_markers = 1;
-                    job->deinterlace = 1;
                     pixelratio = 1;
                     twoPass = 1;
                     turbo_opts_enabled = 1;
@@ -428,7 +429,7 @@ static int HandleEvents( hb_handle_t * h )
                     job->abitrate = 160;
                     job->arate = 48000;
                     acodec = HB_ACODEC_FAAC;
-                    x264opts = strdup("bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=2:cabac=0");
+                    x264opts = strdup("bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=1:cabac=0");
                     job->chapter_markers = 1;
                     pixelratio = 1;
                 }
@@ -479,7 +480,7 @@ static int HandleEvents( hb_handle_t * h )
                     job->abitrate = 160;
                     job->arate = 48000;
                     acodec = HB_ACODEC_FAAC;
-                 }
+                }
 
                 if (!strcmp(preset_name, "Constant Quality Rate"))
                 {
@@ -512,7 +513,7 @@ static int HandleEvents( hb_handle_t * h )
                     vcodec = HB_VCODEC_X264;
                     job->vbitrate = 1800;
                     acodec = HB_ACODEC_AC3;
-                    x264opts = strdup("ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:no-fast-pskip");
+                    x264opts = strdup("ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip");
                     job->chapter_markers = 1;
                     pixelratio = 1;
                     twoPass = 1;
@@ -543,7 +544,7 @@ static int HandleEvents( hb_handle_t * h )
                     job->arate = 48000;
                     acodec = HB_ACODEC_FAAC;
                     job->width = 640;
-                    x264opts = strdup("keyint=300:keyint-min=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1");
+                    x264opts = strdup("bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1");
                     job->chapter_markers = 1;
                 }
 
@@ -557,7 +558,7 @@ static int HandleEvents( hb_handle_t * h )
                     job->arate = 48000;
                     acodec = HB_ACODEC_FAAC;
                     job->width = 320;
-                    x264opts = strdup("keyint=300:keyint-min=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1");
+                    x264opts = strdup("bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1");
                     job->chapter_markers = 1;
                 }
 
@@ -624,11 +625,26 @@ static int HandleEvents( hb_handle_t * h )
                     job->arate = 48000;
                     acodec = HB_ACODEC_FAAC;
                     x264opts = strdup("ref=3:mixed-refs:bframes=16:bime:weightb:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip");
+                    deinterlace = 1;
+                    deinterlace_opt = "2:-1:1";
+                    denoise = 1;
+                    denoise_opt = "2:1:2:3";
                     job->chapter_markers = 1;
-                    job->deinterlace = 1;
                     twoPass = 1;
                     turbo_opts_enabled = 1;
                 }
+
+                if (!strcmp(preset_name, "Xbox 360"))
+                {
+                    mux = HB_MUX_MP4;
+                    vcodec = HB_VCODEC_X264;
+                    job->vbitrate = 2000;
+                    job->abitrate = 160;
+                    job->arate = 48000;
+                    acodec = HB_ACODEC_FAAC;
+                    x264opts = strdup("level=40:ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip:filter=-2,-1");
+                    pixelratio = 1;
+                }
             }
             
                        if ( chapter_markers )
@@ -1211,9 +1227,9 @@ static void ShowHelp()
  ****************************************************************************/
 static void ShowPresets()
 {
-    printf("\n+ Animation:  -e x264 -b 1000 -B 160 -R 48 -E faac -f mkv -m -d -p -2 -T -x ref=5:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=5:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2\n");
+    printf("\n+ Animation:  -e x264 -b 1000 -B 160 -R 48 -E faac -f mkv --deinterlace=\"slower\" -m -p -2 -T -x ref=5:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=5:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2\n");
 
-    printf("\n+ AppleTV:  -e x264 -b 2500 -B 160 -R 48 -E faac -f mp4 -m -p -x bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=2:cabac=0\n");
+    printf("\n+ AppleTV:  -e x264 -b 2500 -B 160 -R 48 -E faac -f mp4 -m -p -x bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=1:cabac=0\n");
 
     printf("\n+ Bedlam:  -e x264 -b 1800 -E ac3 -f mkv -m -p -2 -T -x ref=16:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:me-range=64:analyse=all:8x8dct:trellis=2:no-fast-pskip:no-dct-decimate:filter=-2,-1\n");
 
@@ -1227,13 +1243,13 @@ static void ShowPresets()
 
     printf("\n+ Deux Six Quatre:  -e x264 -b 1600 -E ac3 -f mkv -m -p -2 -T -x ref=5:mixed-refs:bframes=3:bime:weightb:b-rdo:b-pyramid:me=umh:subme=7:trellis=1:analyse=all:8x8dct:no-fast-pskip\n");
 
-    printf("\n+ Film:  -e x264 -b 1800 -E ac3 -f mkv -m -p -2 -T -x ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:no-fast-pskip\n");
+    printf("\n+ Film:  -e x264 -b 1800 -E ac3 -f mkv -m -p -2 -T -x ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip\n");
 
     printf("\n+ iPhone / iPod Touch:  -e x264b30 -b 960 -B 128 -R 48 -E faac -f mp4 -w 480 -m -x cabac=0:ref=1:analyse=all:me=umh:subme=6:no-fast-pskip=1:trellis=1\n");
 
-    printf("\n+ iPod High-Rez:  -e x264b30 -b 1500 -B 160 -R 48 -E faac -f mp4 -w 640 -m -x keyint=300:keyint-min=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1\n");
+    printf("\n+ iPod High-Rez:  -e x264b30 -b 1500 -B 160 -R 48 -E faac -f mp4 -w 640 -m -x bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1\n");
 
-    printf("\n+ iPod Low-Rez:  -e x264b30 -b 700 -B 160 -R 48 -E faac -f mp4 -w 320 -m -x keyint=300:keyint-min=30:bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1\n");
+    printf("\n+ iPod Low-Rez:  -e x264b30 -b 700 -B 160 -R 48 -E faac -f mp4 -w 320 -m -x bframes=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:subme=6:no-fast-pskip=1\n");
 
     printf("\n+ Normal:  -e x264 -b 1500 -B 160 -R 48 -E faac -f mp4 -m -p -2 -T -x ref=2:bframes=2:subme=5:me=umh\n");
 
@@ -1243,8 +1259,9 @@ static void ShowPresets()
 
     printf("\n+ QuickTime:  -e x264 -b 2000 -B 160 -R 48 -E faac -f mp4 -m -p -2 -T -x ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:me=umh:subme=5:analyse=all:trellis=1:no-fast-pskip\n");
 
-    printf("\n+ Television:  -e x264 -b 1300 -B 160 -R 48 -E faac -f mkv -m -d -2 -T -x ref=3:mixed-refs:bframes=16:bime:weightb:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip\n");
-    
+    printf("\n+ Television:  -e x264 -b 1300 -B 160 -R 48 -E faac -f mkv --deinterlace=\"slower\" --denoise=\"weak\" -m -2 -T -x ref=3:mixed-refs:bframes=16:bime:weightb:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip\n");
+
+    printf("\n+ Xbox 360:  -e x264 -b 2000 -B 160 -R 48 -E faac -f mp4 -p -x level=40:ref=3:mixed-refs:bframes=16:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=7:analyse=all:8x8dct:trellis=1:no-fast-pskip:filter=-2,-1\n");
 }
 
 /****************************************************************************