OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / test / test.c
index 63282a5..fc753d2 100644 (file)
@@ -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"
-    "          <number>          If \"number\" is omitted, the first trac is burned.\n"
+    "          <number>          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"
     "          <number>          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");
 
 }