X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=test%2Ftest.c;h=fc753d24f09ccf2a3b531f9beabb966f53ad7912;hb=3166f4bf518b12ef658ce4a249f9a265b16693bd;hp=63282a549349e727f742b4b83bf4b201361b9dd5;hpb=a6d803b723c15b5219c200cb1d992a97d015a161;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/test/test.c b/test/test.c index 63282a54..fc753d24 100644 --- a/test/test.c +++ b/test/test.c @@ -365,6 +365,8 @@ int main( int argc, char ** argv ) if( stop_at_string ) free( stop_at_string ); if( start_at_string ) free( start_at_string ); + // write a carriage return to stdout - avoids overlap / line wrapping when stderr is redirected + fprintf( stdout, "\n" ); fprintf( stderr, "HandBrake has exited.\n" ); return 0; @@ -608,479 +610,567 @@ static int HandleEvents( hb_handle_t * h ) if (preset) { - fprintf( stderr, "+ Using preset: %s", preset_name); + fprintf( stderr, "+ Using preset: %s\n", preset_name); if (!strcmp(preset_name, "Universal")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - vcodec = HB_VCODEC_X264; - job->vquality = 20.0; - if( !atracks ) - { - atracks = strdup("1,1"); - } - if( !acodecs ) - { - acodecs = strdup("faac,copy:ac3"); - } - if( !abitrates ) - { - abitrates = strdup("160,160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2,auto"); - } - if( !arates ) - { - arates = strdup("Auto,Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0,0.0"); - } - maxWidth = 720; - if( !x264opts ) - { - x264opts = strdup("cabac=0:ref=2:me=umh:bframes=0:weightp=0:8x8dct=0:trellis=0:subme=6"); - } - if( !anamorphic_mode ) - { - anamorphic_mode = 2; - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "iPod")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - job->ipod_atom = 1; - vcodec = HB_VCODEC_X264; - job->vbitrate = 700; - if( !atracks ) - { - atracks = strdup("1"); - } - if( !acodecs ) - { - acodecs = strdup("faac"); - } - if( !abitrates ) - { - abitrates = strdup("160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2"); - } - if( !arates ) - { - arates = strdup("Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0"); - } - maxWidth = 320; - if( !x264opts ) - { - x264opts = strdup("level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subme=6:8x8dct=0:trellis=0"); - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "iPhone & iPod Touch")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - vcodec = HB_VCODEC_X264; - job->vquality = 20.0; - if( !atracks ) - { - atracks = strdup("1"); - } - if( !acodecs ) - { - acodecs = strdup("faac"); - } - if( !abitrates ) - { - abitrates = strdup("128"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2"); - } - if( !arates ) - { - arates = strdup("Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0"); - } - maxWidth = 480; - if( !x264opts ) - { - x264opts = strdup("cabac=0:ref=2:me=umh:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0"); - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "iPad")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - job->largeFileSize = 1; - vcodec = HB_VCODEC_X264; - job->vquality = 20.0; - job->vrate_base = 900900; - job->cfr = 2; - if( !atracks ) - { - atracks = strdup("1"); - } - if( !acodecs ) - { - acodecs = strdup("faac"); - } - if( !abitrates ) - { - abitrates = strdup("160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2"); - } - if( !arates ) - { - arates = strdup("Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0"); - } - maxWidth = 1024; - if( !anamorphic_mode ) - { - anamorphic_mode = 2; - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "AppleTV")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - job->largeFileSize = 1; - vcodec = HB_VCODEC_X264; - job->vquality = 20.0; - if( !atracks ) - { - atracks = strdup("1,1"); - } - if( !acodecs ) - { - acodecs = strdup("faac,copy:ac3"); - } - if( !abitrates ) - { - abitrates = strdup("160,160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2,auto"); - } - if( !arates ) - { - arates = strdup("Auto,Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0,0.0"); - } - maxWidth = 960; - if( !x264opts ) - { - x264opts = strdup("cabac=0:ref=2:me=umh:b-pyramid=none:b-adapt=2:weightb=0:trellis=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500"); - } - if( !anamorphic_mode ) - { - anamorphic_mode = 2; - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "Normal")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - vcodec = HB_VCODEC_X264; - job->vquality = 20.0; - if( !atracks ) - { - atracks = strdup("1"); - } - if( !acodecs ) - { - acodecs = strdup("faac"); - } - if( !abitrates ) - { - abitrates = strdup("160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2"); - } - if( !arates ) - { - arates = strdup("Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0"); - } - if( !x264opts ) - { - x264opts = strdup("ref=2:bframes=2:subme=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0"); - } - if( !anamorphic_mode ) - { - anamorphic_mode = 1; - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "High Profile")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - vcodec = HB_VCODEC_X264; - job->vquality = 20.0; - if( !atracks ) - { - atracks = strdup("1,1"); - } - if( !acodecs ) - { - acodecs = strdup("faac,copy:ac3"); - } - if( !abitrates ) - { - abitrates = strdup("160,160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2,auto"); - } - if( !arates ) - { - arates = strdup("Auto,Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0,0.0"); - } - if( !x264opts ) - { - x264opts = strdup("b-adapt=2:rc-lookahead=50"); - } - detelecine = 1; - decomb = 1; - if( !anamorphic_mode ) - { - anamorphic_mode = 2; - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "Classic")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - job->vbitrate = 1000; - if( !atracks ) - { - atracks = strdup("1"); - } - if( !acodecs ) - { - acodecs = strdup("faac"); - } - if( !abitrates ) - { - abitrates = strdup("160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2"); - } - if( !arates ) - { - arates = strdup("Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0"); - } - - } - - if (!strcmp(preset_name, "AppleTV Legacy")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - job->largeFileSize = 1; - vcodec = HB_VCODEC_X264; - job->vbitrate = 2500; - if( !atracks ) - { - atracks = strdup("1,1"); - } - if( !acodecs ) - { - acodecs = strdup("faac,copy:ac3"); - } - if( !abitrates ) - { - abitrates = strdup("160,160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2,auto"); - } - if( !arates ) - { - arates = strdup("Auto,Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0,0.0"); - } - if( !x264opts ) - { - x264opts = strdup("ref=1:b-pyramid=none:weightp=0:subme=5:me=umh:no-fast-pskip=1:cabac=0:weightb=0:8x8dct=0:trellis=0"); - } - if( !anamorphic_mode ) - { - anamorphic_mode = 1; - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "iPhone Legacy")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - job->ipod_atom = 1; - vcodec = HB_VCODEC_X264; - job->vbitrate = 960; - if( !atracks ) - { - atracks = strdup("1"); - } - if( !acodecs ) - { - acodecs = strdup("faac"); - } - if( !abitrates ) - { - abitrates = strdup("128"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2"); - } - if( !arates ) - { - arates = strdup("Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0"); - } - maxWidth = 480; - if( !x264opts ) - { - x264opts = strdup("level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0"); - } - job->chapter_markers = 1; - - } - - if (!strcmp(preset_name, "iPod Legacy")) - { - if( !mux ) - { - mux = HB_MUX_MP4; - } - job->ipod_atom = 1; - vcodec = HB_VCODEC_X264; - job->vbitrate = 1500; - if( !atracks ) - { - atracks = strdup("1"); - } - if( !acodecs ) - { - acodecs = strdup("faac"); - } - if( !abitrates ) - { - abitrates = strdup("160"); - } - if( !mixdowns ) - { - mixdowns = strdup("dpl2"); - } - if( !arates ) - { - arates = strdup("Auto"); - } - if( !dynamic_range_compression ) - { - dynamic_range_compression = strdup("0.0"); - } - maxWidth = 640; - if( !x264opts ) - { - x264opts = strdup("level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subme=6:8x8dct=0:trellis=0"); - } - job->chapter_markers = 1; - - } - + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + vcodec = HB_VCODEC_X264; + job->vquality = 20.0; + if( !atracks ) + { + atracks = strdup("1,1"); + } + if( !acodecs ) + { + acodecs = strdup("faac,copy:ac3"); + } + if( !abitrates ) + { + abitrates = strdup("160,160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2,auto"); + } + if( !arates ) + { + arates = strdup("Auto,Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0,0.0"); + } + maxWidth = 720; + if( !x264opts ) + { + x264opts = strdup("cabac=0:ref=2:me=umh:bframes=0:weightp=0:8x8dct=0:trellis=0:subme=6"); + } + if( !anamorphic_mode ) + { + anamorphic_mode = 2; + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "iPod")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->ipod_atom = 1; + vcodec = HB_VCODEC_X264; + job->vbitrate = 700; + if( !atracks ) + { + atracks = strdup("1"); + } + if( !acodecs ) + { + acodecs = strdup("faac"); + } + if( !abitrates ) + { + abitrates = strdup("160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2"); + } + if( !arates ) + { + arates = strdup("Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0"); + } + maxWidth = 320; + if( !x264opts ) + { + x264opts = strdup("level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subme=6:8x8dct=0:trellis=0"); + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "iPhone & iPod Touch")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + vcodec = HB_VCODEC_X264; + job->vquality = 20.0; + if( !atracks ) + { + atracks = strdup("1"); + } + if( !acodecs ) + { + acodecs = strdup("faac"); + } + if( !abitrates ) + { + abitrates = strdup("128"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2"); + } + if( !arates ) + { + arates = strdup("Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0"); + } + maxWidth = 480; + if( !x264opts ) + { + x264opts = strdup("cabac=0:ref=2:me=umh:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0"); + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "iPhone 4")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->largeFileSize = 1; + vcodec = HB_VCODEC_X264; + job->vquality = 20.0; + job->vrate_base = 900900; + job->cfr = 2; + if( !atracks ) + { + atracks = strdup("1"); + } + if( !acodecs ) + { + acodecs = strdup("faac"); + } + if( !abitrates ) + { + abitrates = strdup("160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2"); + } + if( !arates ) + { + arates = strdup("Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0"); + } + maxWidth = 960; + if( !anamorphic_mode ) + { + anamorphic_mode = 2; + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "iPad")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->largeFileSize = 1; + vcodec = HB_VCODEC_X264; + job->vquality = 20.0; + job->vrate_base = 900900; + job->cfr = 2; + if( !atracks ) + { + atracks = strdup("1"); + } + if( !acodecs ) + { + acodecs = strdup("faac"); + } + if( !abitrates ) + { + abitrates = strdup("160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2"); + } + if( !arates ) + { + arates = strdup("Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0"); + } + maxWidth = 1024; + if( !anamorphic_mode ) + { + anamorphic_mode = 2; + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "AppleTV")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->largeFileSize = 1; + vcodec = HB_VCODEC_X264; + job->vquality = 20.0; + if( !atracks ) + { + atracks = strdup("1,1"); + } + if( !acodecs ) + { + acodecs = strdup("faac,copy:ac3"); + } + if( !abitrates ) + { + abitrates = strdup("160,160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2,auto"); + } + if( !arates ) + { + arates = strdup("Auto,Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0,0.0"); + } + maxWidth = 960; + if( !x264opts ) + { + x264opts = strdup("cabac=0:ref=2:me=umh:b-pyramid=none:b-adapt=2:weightb=0:trellis=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500"); + } + if( !anamorphic_mode ) + { + anamorphic_mode = 2; + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "AppleTV 2")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->largeFileSize = 1; + vcodec = HB_VCODEC_X264; + job->vquality = 20.0; + job->vrate_base = 900900; + job->cfr = 2; + if( !atracks ) + { + atracks = strdup("1,1"); + } + if( !acodecs ) + { + acodecs = strdup("faac,copy:ac3"); + } + if( !abitrates ) + { + abitrates = strdup("160,160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2,auto"); + } + if( !arates ) + { + arates = strdup("Auto,Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0,0.0"); + } + maxWidth = 1280; + if( !anamorphic_mode ) + { + anamorphic_mode = 2; + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "Normal")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + vcodec = HB_VCODEC_X264; + job->vquality = 20.0; + if( !atracks ) + { + atracks = strdup("1"); + } + if( !acodecs ) + { + acodecs = strdup("faac"); + } + if( !abitrates ) + { + abitrates = strdup("160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2"); + } + if( !arates ) + { + arates = strdup("Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0"); + } + if( !x264opts ) + { + x264opts = strdup("ref=2:bframes=2:subme=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0"); + } + if( !anamorphic_mode ) + { + anamorphic_mode = 1; + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "High Profile")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + vcodec = HB_VCODEC_X264; + job->vquality = 20.0; + if( !atracks ) + { + atracks = strdup("1,1"); + } + if( !acodecs ) + { + acodecs = strdup("faac,copy:ac3"); + } + if( !abitrates ) + { + abitrates = strdup("160,160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2,auto"); + } + if( !arates ) + { + arates = strdup("Auto,Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0,0.0"); + } + if( !x264opts ) + { + x264opts = strdup("b-adapt=2:rc-lookahead=50"); + } + detelecine = 1; + decomb = 1; + if( !anamorphic_mode ) + { + anamorphic_mode = 2; + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "Classic")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->vbitrate = 1000; + if( !atracks ) + { + atracks = strdup("1"); + } + if( !acodecs ) + { + acodecs = strdup("faac"); + } + if( !abitrates ) + { + abitrates = strdup("160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2"); + } + if( !arates ) + { + arates = strdup("Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0"); + } + + } + + if (!strcmp(preset_name, "AppleTV Legacy")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->largeFileSize = 1; + vcodec = HB_VCODEC_X264; + job->vbitrate = 2500; + if( !atracks ) + { + atracks = strdup("1,1"); + } + if( !acodecs ) + { + acodecs = strdup("faac,copy:ac3"); + } + if( !abitrates ) + { + abitrates = strdup("160,160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2,auto"); + } + if( !arates ) + { + arates = strdup("Auto,Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0,0.0"); + } + if( !x264opts ) + { + x264opts = strdup("ref=1:b-pyramid=none:weightp=0:subme=5:me=umh:no-fast-pskip=1:cabac=0:weightb=0:8x8dct=0:trellis=0"); + } + if( !anamorphic_mode ) + { + anamorphic_mode = 1; + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "iPhone Legacy")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->ipod_atom = 1; + vcodec = HB_VCODEC_X264; + job->vbitrate = 960; + if( !atracks ) + { + atracks = strdup("1"); + } + if( !acodecs ) + { + acodecs = strdup("faac"); + } + if( !abitrates ) + { + abitrates = strdup("128"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2"); + } + if( !arates ) + { + arates = strdup("Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0"); + } + maxWidth = 480; + if( !x264opts ) + { + x264opts = strdup("level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0"); + } + job->chapter_markers = 1; + + } + + if (!strcmp(preset_name, "iPod Legacy")) + { + if( !mux ) + { + mux = HB_MUX_MP4; + } + job->ipod_atom = 1; + vcodec = HB_VCODEC_X264; + job->vbitrate = 1500; + if( !atracks ) + { + atracks = strdup("1"); + } + if( !acodecs ) + { + acodecs = strdup("faac"); + } + if( !abitrates ) + { + abitrates = strdup("160"); + } + if( !mixdowns ) + { + mixdowns = strdup("dpl2"); + } + if( !arates ) + { + arates = strdup("Auto"); + } + if( !dynamic_range_compression ) + { + dynamic_range_compression = strdup("0.0"); + } + maxWidth = 640; + if( !x264opts ) + { + x264opts = strdup("level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subme=6:8x8dct=0:trellis=0"); + } + job->chapter_markers = 1; + + } + } if ( chapter_markers ) @@ -1197,6 +1287,11 @@ static int HandleEvents( hb_handle_t * h ) { case 0: // Non-anamorphic + if (modulus) + { + job->modulus = modulus; + } + if( width && height ) { job->width = width; @@ -1205,15 +1300,27 @@ static int HandleEvents( hb_handle_t * h ) else if( width ) { job->width = width; + // do not exceed source dimensions by default + if( !maxHeight ) + job->maxHeight = title->height; hb_fix_aspect( job, HB_KEEP_WIDTH ); } else if( height ) { job->height = height; + // do not exceed source dimensions by default + if( !maxWidth ) + job->maxWidth = title->width; hb_fix_aspect( job, HB_KEEP_HEIGHT ); } else if( !width && !height ) { + /* Default to cropped width when one isn't specified + * avoids rounding to mod 16 regardless of modulus */ + job->width = title->width - job->crop[2] - job->crop[3]; + // do not exceed source dimensions by default + if( !maxHeight ) + job->maxHeight = title->height; hb_fix_aspect( job, HB_KEEP_WIDTH ); } @@ -1340,7 +1447,7 @@ static int HandleEvents( hb_handle_t * h ) break; } - if( vquality >= 0.0 && ( ( vquality <= 1.0 ) || ( vcodec == HB_VCODEC_X264 ) || (vcodec == HB_VCODEC_FFMPEG) ) ) + if( vquality >= 0.0 ) { job->vquality = vquality; job->vbitrate = 0; @@ -1406,7 +1513,7 @@ static int HandleEvents( hb_handle_t * h ) } else { - fprintf(stderr, "ERROR: Unable to parse audio input \"%s\", skipping.", + fprintf(stderr, "ERROR: Unable to parse audio input \"%s\", skipping.\n", token); free(audio); } @@ -1808,10 +1915,12 @@ static int HandleEvents( hb_handle_t * h ) ( audio->out.codec & HB_ACODEC_PASS_FLAG ) && !( audio->out.codec & audio->in.codec ) ) { + // AC3 passthru not possible, fallback to AC3 encoder. + fprintf( stderr, "AC3 passthru requested and input codec is not AC3 for track %d, using AC3 encoder\n", + audio->out.track ); audio->out.codec = HB_ACODEC_AC3; audio->out.mixdown = hb_get_default_mixdown( audio->out.codec, audio->in.channel_layout ); - audio->out.bitrate = hb_get_default_audio_bitrate( - audio->out.codec, audio->out.samplerate, + audio->out.bitrate = hb_get_default_audio_bitrate( audio->out.codec, audio->out.samplerate, audio->out.mixdown ); } // fix 'copy' to select a specific codec @@ -1821,7 +1930,7 @@ static int HandleEvents( hb_handle_t * h ) if ( !( audio->out.codec & HB_ACODEC_MASK ) ) { // Passthru not possible, drop audio. - fprintf( stderr, "Passthru requested and input codec is not the same as output codec for track %d\n", + fprintf( stderr, "Passthru requested and input codec is not the same as output codec for track %d, dropping track\n", audio->out.track ); hb_audio_t * item = hb_list_item( job->list_audio, i ); hb_list_rem( job->list_audio, item ); @@ -1968,8 +2077,10 @@ static int HandleEvents( hb_handle_t * h ) sub_config.default_track = ( srtdefault != -1 ) && ( srtdefault == i + 1 ); sub_config.force = 0; - strncpy( sub_config.src_filename, srtfile[i], 128); - strncpy( sub_config.src_codeset, codeset, 40); + strncpy( sub_config.src_filename, srtfile[i], 255); + sub_config.src_filename[255] = 0; + strncpy( sub_config.src_codeset, codeset, 39); + sub_config.src_codeset[39] = 0; sub_config.offset = offset; hb_srt_add( job, &sub_config, lang); @@ -2516,15 +2627,15 @@ static void ShowHelp() " specified with '--subtitle'.\n" " Separated by commas for more than one audio track.\n" " Example: \"1,2,3\" for multiple tracks.\n" - " If \"string\" is omitted, the first trac is forced.\n" + " If \"string\" is omitted, the first track is forced.\n" " --subtitle-burn \"Burn\" the selected subtitle into the video track\n" - " If \"number\" is omitted, the first trac is burned.\n" + " If \"number\" is omitted, the first track is burned.\n" " \"number\" is an index into the subtitle list\n" " specified with '--subtitle'.\n" " --subtitle-default Flag the selected subtitle as the default subtitle\n" " to be displayed upon playback. Setting no default\n" " means no subtitle will be automatically displayed\n" - " If \"number\" is omitted, the first trac is default.\n" + " If \"number\" is omitted, the first track is default.\n" " \"number\" is an index into the subtitle list\n" " specified with '--subtitle'.\n" " -N, --native-language Specifiy the your language preference. When the first\n" @@ -2566,38 +2677,44 @@ static void ShowHelp() ****************************************************************************/ static void ShowPresets() { - printf("\n< Apple\n"); - + fprintf( stderr, "%s - %s - %s\n", HB_PROJECT_TITLE, HB_PROJECT_BUILD_TITLE, HB_PROJECT_URL_WEBSITE ); + + printf("\n< Apple\n"); + printf("\n + Universal: -e x264 -q 20.0 -a 1,1 -E faac,copy:ac3 -B 160,160 -6 dpl2,auto -R Auto,Auto -D 0.0,0.0 -f mp4 -X 720 --loose-anamorphic -m -x cabac=0:ref=2:me=umh:bframes=0:weightp=0:8x8dct=0:trellis=0:subme=6\n"); - + printf("\n + iPod: -e x264 -b 700 -a 1 -E faac -B 160 -6 dpl2 -R Auto -D 0.0 -f mp4 -I -X 320 -m -x level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subme=6:8x8dct=0:trellis=0\n"); - + printf("\n + iPhone & iPod Touch: -e x264 -q 20.0 -a 1 -E faac -B 128 -6 dpl2 -R Auto -D 0.0 -f mp4 -X 480 -m -x cabac=0:ref=2:me=umh:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0\n"); - + + printf("\n + iPhone 4: -e x264 -q 20.0 -r 29.97 --pfr -a 1 -E faac -B 160 -6 dpl2 -R Auto -D 0.0 -f mp4 -4 -X 960 --loose-anamorphic -m\n"); + printf("\n + iPad: -e x264 -q 20.0 -r 29.97 --pfr -a 1 -E faac -B 160 -6 dpl2 -R Auto -D 0.0 -f mp4 -4 -X 1024 --loose-anamorphic -m\n"); - + printf("\n + AppleTV: -e x264 -q 20.0 -a 1,1 -E faac,copy:ac3 -B 160,160 -6 dpl2,auto -R Auto,Auto -D 0.0,0.0 -f mp4 -4 -X 960 --loose-anamorphic -m -x cabac=0:ref=2:me=umh:b-pyramid=none:b-adapt=2:weightb=0:trellis=0:weightp=0:vbv-maxrate=9500:vbv-bufsize=9500\n"); - + + printf("\n + AppleTV 2: -e x264 -q 20.0 -r 29.97 --pfr -a 1,1 -E faac,copy:ac3 -B 160,160 -6 dpl2,auto -R Auto,Auto -D 0.0,0.0 -f mp4 -4 -X 1280 --loose-anamorphic -m\n"); + printf("\n>\n"); - + printf("\n< Regular\n"); - + printf("\n + Normal: -e x264 -q 20.0 -a 1 -E faac -B 160 -6 dpl2 -R Auto -D 0.0 -f mp4 --strict-anamorphic -m -x ref=2:bframes=2:subme=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0\n"); - + printf("\n + High Profile: -e x264 -q 20.0 -a 1,1 -E faac,copy:ac3 -B 160,160 -6 dpl2,auto -R Auto,Auto -D 0.0,0.0 -f mp4 --detelecine --decomb --loose-anamorphic -m -x b-adapt=2:rc-lookahead=50\n"); - + printf("\n>\n"); - + printf("\n< Legacy\n"); - + printf("\n + Classic: -b 1000 -a 1 -E faac -B 160 -6 dpl2 -R Auto -D 0.0 -f mp4\n"); - + printf("\n + AppleTV Legacy: -e x264 -b 2500 -a 1,1 -E faac,copy:ac3 -B 160,160 -6 dpl2,auto -R Auto,Auto -D 0.0,0.0 -f mp4 -4 --strict-anamorphic -m -x ref=1:b-pyramid=none:weightp=0:subme=5:me=umh:no-fast-pskip=1:cabac=0:weightb=0:8x8dct=0:trellis=0\n"); - + printf("\n + iPhone Legacy: -e x264 -b 960 -a 1 -E faac -B 128 -6 dpl2 -R Auto -D 0.0 -f mp4 -I -X 480 -m -x level=30:cabac=0:ref=1:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0\n"); - + printf("\n + iPod Legacy: -e x264 -b 1500 -a 1 -E faac -B 160 -6 dpl2 -R Auto -D 0.0 -f mp4 -I -X 640 -m -x level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subme=6:8x8dct=0:trellis=0\n"); - + printf("\n>\n"); }