All pastes #757850 Raw Edit

Anonymous

public diff v1 · immutable
·published 2007-11-01 18:01 UTC
rendered paste body
Index: test/test.c===================================================================--- test/test.c	(revision 1034)+++ test/test.c	(working copy)@@ -67,6 +67,9 @@ static int    turbo_opts_enabled = 0; static char * turbo_opts = "ref=1:subme=1:me=dia:analyse=none:trellis=0:no-fast-pskip=0:8x8dct=0"; static int    largeFileSize = 0;+static int    vfr           = 0;+static int    preset        = 0;+static char * presetname    = NULL;  /* Exit cleanly on Ctrl-C */ static volatile int die = 0;@@ -75,6 +78,8 @@ /* Utils */ static void ShowCommands(); static void ShowHelp();+static void ShowPresets();+ static int  ParseOptions( int argc, char ** argv ); static int  CheckOptions( int argc, char ** argv ); static int  HandleEvents( hb_handle_t * h );@@ -223,7 +228,8 @@     if (native_language ) free (native_language ); 	if( x264opts ) free (x264opts ); 	if( x264opts2 ) free (x264opts2 );-	+    if (presetname) free (presetname);+         fprintf( stderr, "HandBrake has exited.\n" );      return 0;@@ -375,7 +381,7 @@                 die = 1;                 break;             }-+                         /* Set job settings */             job   = title->job; @@ -390,7 +396,247 @@                 job->chapter_end   = MAX( job->chapter_start,                                           job->chapter_end );             }+            +            if (preset)+            {+                hb_log("+ Using preset: %s", presetname);+                +                if (!strcmp(presetname, "Animation"))+                {+                    job->mux = HB_MUX_MKV;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 1000;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    x264opts = strdup("ref=5:mixed-refs:bframes=6:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=5:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2");+                    job->chapter_markers = 1;+                    job->deinterlace = 1;+                    job->pixel_ratio = 1;+                    twoPass = 1;+                    turbo_opts_enabled = 1;+                } +                if (!strcmp(presetname, "AppleTV"))+                {+                    job->mux = HB_MUX_MP4;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 2500;+                    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");+                    job->chapter_markers = 1;+                    job->pixel_ratio = 1;+                }++                if (!strcmp(presetname, "Bedlam"))+                {+                    job->mux = HB_MUX_MKV;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 1800;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_AC3;+                    x264opts = strdup("ref=16:mixed-refs:bframes=6: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");+                    job->chapter_markers = 1;+                    job->pixel_ratio = 1;+                    twoPass = 1;+                    turbo_opts_enabled = 1;+                }++                if (!strcmp(presetname, "Blind"))+                {+                    job->mux = HB_MUX_MP4;+                    job->vbitrate = 512;+                    job->abitrate = 128;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    job->width = 512;+                    job->chapter_markers = 1;+                }++                if (!strcmp(presetname, "Broke"))+                {+                    job->mux = HB_MUX_MP4;+                    vcodec = HB_VCODEC_X264;+                    size = 695;+                    job->abitrate = 128;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    job->width = 640;+                    x264opts = strdup("ref=3:mixed-refs:bframes=6:bime:weightb:b-rdo:b-pyramid:direct=auto:me=umh:subme=6:trellis=1:analyse=all:8x8dct:no-fast-pskip");+                    job->chapter_markers = 1;+                    twoPass = 1;+                    turbo_opts_enabled = 1;+                }++                if (!strcmp(presetname, "Classic"))+                {+                    job->mux = HB_MUX_MP4;+                    job->vbitrate = 1000;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                }++                if (!strcmp(presetname, "Constant Quality Rate"))+                {+                    job->mux = HB_MUX_MKV;+                    vcodec = HB_VCODEC_X264;+                    job->vquality = 0.64709997177124023;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_AC3;+                    x264opts = strdup("ref=3:mixed-refs:bframes=3:b-pyramid:b-rdo:bime:weightb:filter=-2,-1:subme=6:trellis=1:analyse=all:8x8dct:me=umh");+                    job->chapter_markers = 1;+                    job->pixel_ratio = 1;+                }++                if (!strcmp(presetname, "Deux Six Quatre"))+                {+                    job->mux = HB_MUX_MKV;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 1600;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_AC3;+                    x264opts = strdup("ref=5:mixed-refs:bframes=3:bime:weightb:b-rdo:b-pyramid:me=umh:subme=7:trellis=1:analyse=all:8x8dct:no-fast-pskip");+                    job->chapter_markers = 1;+                    job->pixel_ratio = 1;+                    twoPass = 1;+                    turbo_opts_enabled = 1;+                }++                if (!strcmp(presetname, "Film"))+                {+                    job->mux = HB_MUX_MKV;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 2000;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_AC3;+                    x264opts = strdup("ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:no-fast-pskip");+                    job->chapter_markers = 1;+                    job->pixel_ratio = 1;+                    twoPass = 1;+                    turbo_opts_enabled = 1;+                }++                if (!strcmp(presetname, "iPhone"))+                {+                    job->mux = HB_MUX_MP4;+                    vcodec = HB_VCODEC_X264;+                    job->h264_level = 30;+                    job->vbitrate = 960;+                    job->abitrate = 128;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    job->width = 480;+                    x264opts = strdup("cabac=0:ref=1:analyse=all:me=umh:subme=6:no-fast-pskip=1:trellis=1");+                    job->chapter_markers = 1;+                }++                if (!strcmp(presetname, "iPod High-Rez"))+                {+                    job->mux = HB_MUX_MP4;+                    vcodec = HB_VCODEC_X264;+                    job->h264_level = 30;+                    job->vbitrate = 1500;+                    job->abitrate = 160;+                    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");+                    job->chapter_markers = 1;+                }++                if (!strcmp(presetname, "iPod Low-Rez"))+                {+                    job->mux = HB_MUX_MP4;+                    vcodec = HB_VCODEC_X264;+                    job->h264_level = 30;+                    job->vbitrate = 700;+                    job->abitrate = 160;+                    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");+                    job->chapter_markers = 1;+                }++                if (!strcmp(presetname, "Normal"))+                {+                    job->mux = HB_MUX_MP4;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 1500;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    x264opts = strdup("ref=2:bframes=2:subme=5:me=umh");+                    job->chapter_markers = 1;+                    job->pixel_ratio = 1;+                    twoPass = 1;+                    turbo_opts_enabled = 1;+                }++                if (!strcmp(presetname, "PS3"))+                {+                    job->mux = HB_MUX_MP4;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 2500;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    x264opts = strdup("level=41:subme=5:me=umh");+                    job->chapter_markers = 1;+                    job->pixel_ratio = 1;+                }++                if (!strcmp(presetname, "PSP"))+                {+                    job->mux = HB_MUX_MP4;+                    job->vbitrate = 1024;+                    job->abitrate = 128;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    job->width = 368;+                    job->height = 208;+                    job->chapter_markers = 1;+                }++                if (!strcmp(presetname, "QuickTime"))+                {+                    job->mux = HB_MUX_MP4;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 2000;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    x264opts = strdup("ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:me=umh:subme=5:analyse=all:8x8dct:trellis=1:no-fast-pskip");+                    job->chapter_markers = 1;+                    job->pixel_ratio = 1;+                    twoPass = 1;+                    turbo_opts_enabled = 1;+                }++                if (!strcmp(presetname, "Television"))+                {+                    job->mux = HB_MUX_MKV;+                    vcodec = HB_VCODEC_X264;+                    job->vbitrate = 1300;+                    job->abitrate = 160;+                    job->arate = 48000;+                    acodec = HB_ACODEC_FAAC;+                    x264opts = strdup("ref=3:mixed-refs:bframes=6:bime:weightb:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip");+                    job->chapter_markers = 1;+                    job->deinterlace = 1;+                    twoPass = 1;+                    turbo_opts_enabled = 1;+                }+                +            }+             			if ( chapter_markers ) 			{ 				job->chapter_markers = chapter_markers;@@ -633,6 +879,9 @@                 job->maxWidth = maxWidth;             if (maxHeight)                 job->maxHeight = maxHeight;+            +            if (vfr)+                job->vfr = 1; 	             if( subtitle_force )             {@@ -928,17 +1177,42 @@ 	"\n" 	 	-    "### Advanced H264 Options----------------------------------------------------\n\n"+    "### Advanced Options---------------------------------------------------------\n\n"     "    -x, --x264opts <string> Specify advanced x264 options in the\n"     "                            same style as mencoder:\n"     "                            option1=value1:option2=value2\n"     "    -T, --turbo             When using 2-pass use the turbo options\n"     "                            on the first pass to improve speed\n"     "                            (only works with x264, affects PSNR by about 0.05dB,\n"-    "                            and increases first pass speed two to four times)\n");+    "                            and increases first pass speed two to four times)\n"+    "    -V, --vfr               Perform variable framerate detelecine\n"); }  /****************************************************************************+ * ShowPresets:+ ****************************************************************************/+static void ShowPresets()+{+    printf("\n+ Animation: -e x264 -b 1000 -B 160 -R 48 -E faac -f mkv -x ref=5:mixed-refs:bframes=6:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=5:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip:filter=2,2 -m -d -p -2 -T\n");+    printf("\n+ AppleTV: -e x264 -b 2500 -B 160 -R 48 -E faac -f mp4 -x bframes=3:ref=1:subme=5:me=umh:no-fast-pskip=1:trellis=2:cabac=0 -m -p\n");+    printf("\n+ Bedlam: -e x264 -b 1800 -B 160 -R 48 -E ac3 -f mkv -x ref=16:mixed-refs:bframes=6: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 -m -p -2 -T\n");+    printf("\n+ Blind: -b 512 -B 128 -R 48 -E faac -f mp4 -w 512 -m\n");+    printf("\n+ Broke: -e x264 -S 695 -B 128 -R 48 -E faac -f mp4 -w 640 -x ref=3:mixed-refs:bframes=6:bime:weightb:b-rdo:b-pyramid:direct=auto:me=umh:subme=6:trellis=1:analyse=all:8x8dct:no-fast-pskip -m -2 -T\n");+    printf("\n+ Classic: -b 1000 -B 160 -R 48 -E faac -f mp4\n");+    printf("\n+ Constant Quality Rate: -e x264 -q 0.64709997177124023 -B 160 -R 48 -E ac3 -f mkv -x ref=3:mixed-refs:bframes=3:b-pyramid:b-rdo:bime:weightb:filter=-2,-1:subme=6:trellis=1:analyse=all:8x8dct:me=umh -m -p\n");+    printf("\n+ Deux Six Quatre: -e x264 -b 1600 -B 160 -R 48 -E ac3 -f mkv -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 -m -p -2 -T\n");+    printf("\n+ Film: -e x264 -b 2000 -B 160 -R 48 -E ac3 -f mkv -x ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:no-fast-pskip -m -p -2 -T\n");+    printf("\n+ iPhone: -e x264b30 -b 960 -B 128 -R 48 -E faac -f mp4 -w 480 -x cabac=0:ref=1:analyse=all:me=umh:subme=6:no-fast-pskip=1:trellis=1 -m\n");+    printf("\n+ iPod High-Rez: -e x264b30 -b 1500 -B 160 -R 48 -E faac -f mp4 -w 640 -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 -m\n");+    printf("\n+ iPod Low-Rez: -e x264b30 -b 700 -B 160 -R 48 -E faac -f mp4 -w 320 -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 -m\n");+    printf("\n+ Normal: -e x264 -b 1500 -B 160 -R 48 -E faac -f mp4 -x ref=2:bframes=2:subme=5:me=umh -m -p -2 -T\n");+    printf("\n+ PS3: -e x264 -b 2500 -B 160 -R 48 -E faac -f mp4 -x level=41:subme=5:me=umh -m -p\n");+    printf("\n+ PSP: -b 1024 -B 128 -R 48 -E faac -f mp4 -w 368 -l 208 -m\n");+    printf("\n+ QuickTime: -e x264 -b 2000 -B 160 -R 48 -E faac -f mp4 -x ref=3:mixed-refs:bframes=3:bime:weightb:b-rdo:direct=auto:me=umh:subme=5:analyse=all:8x8dct:trellis=1:no-fast-pskip -m -p -2 -T\n");+    printf("\n+ Television: -e x264 -b 1300 -B 160 -R 48 -E faac -f mkv -x ref=3:mixed-refs:bframes=6:bime:weightb:direct=auto:b-pyramid:me=umh:subme=6:analyse=all:8x8dct:trellis=1:nr=150:no-fast-pskip -m -d -2 -T\n");+}++/****************************************************************************  * ParseOptions:  ****************************************************************************/ static int ParseOptions( int argc, char ** argv )@@ -991,9 +1265,11 @@             { "crf",         no_argument,       NULL,    'Q' },             { "x264opts",    required_argument, NULL,    'x' },             { "turbo",       no_argument,       NULL,    'T' },-            +            { "vfr",         no_argument,       NULL,    'V' },             { "maxHeight",   required_argument, NULL,    'Y' },             { "maxWidth",    required_argument, NULL,    'X' },+            { "preset",      required_argument, NULL,    'Z' },+            { "preset-list", no_argument,       NULL,    'z' }, 			             { 0, 0, 0, 0 }           };@@ -1002,7 +1278,7 @@         int c;          c = getopt_long( argc, argv,-                         "hvuC:f:4i:o:t:Lc:ma:6:s:UFN:e:E:2d789gpP::w:l:n:b:q:S:B:r:R:Qx:TY:X:",+                         "hvuC:f:4i:o:t:Lc:ma:6:s:UFN:e:E:2d789gpP::w:l:n:b:q:S:B:r:R:Qx:TY:X:VZ:z",                          long_options, &option_index );         if( c < 0 )         {@@ -1024,6 +1300,13 @@                 cpu = atoi( optarg );                 break; +            case 'Z':+                preset = 1;+                presetname = strdup(optarg);+                break;+            case 'z':+                ShowPresets();+                exit ( 0 );             case 'f':                 format = strdup( optarg );                 break;@@ -1315,6 +1598,9 @@             case 'X':                 maxWidth = atoi (optarg );                 break;+            case 'V':+                vfr = 1;+                break; 				             default:                 fprintf( stderr, "unknown option (%s)\n", argv[optind] );