]> granicus.if.org Git - libx264/commitdiff
Fix bug with various bizarre commandline combinations and mbtree
authorFiona Glaser <fiona@x264.com>
Fri, 18 Sep 2009 21:28:31 +0000 (14:28 -0700)
committerFiona Glaser <fiona@x264.com>
Mon, 21 Sep 2009 06:01:00 +0000 (23:01 -0700)
Second pass would have mbtree on even though the first pass didn't (and thus encoding would immediately fail).

encoder/encoder.c

index 0ebc004341ff3dbd0c99fef4b30568cf9ccd25b4..e17b43f8bf7d9be2af18b556fca23aeb285e32fc 100644 (file)
@@ -513,12 +513,11 @@ static int x264_validate_parameters( x264_t *h )
         h->param.rc.i_lookahead = X264_MIN( h->param.rc.i_lookahead, X264_MAX( h->param.i_keyint_max, bufsize*fps ) );
     }
 
+    h->param.rc.f_qcompress = x264_clip3f( h->param.rc.f_qcompress, 0.0, 1.0 );
+    if( !h->param.rc.i_lookahead || h->param.i_keyint_max == 1 || h->param.rc.f_qcompress == 1 )
+        h->param.rc.b_mb_tree = 0;
     if( h->param.rc.b_stat_read )
         h->param.rc.i_lookahead = 0;
-    else if( !h->param.rc.i_lookahead || h->param.i_keyint_max == 1 )
-        h->param.rc.b_mb_tree = 0;
-    if( h->param.rc.f_qcompress == 1 )
-        h->param.rc.b_mb_tree = 0;
 #ifdef HAVE_PTHREAD
     if( h->param.i_sync_lookahead )
         h->param.i_sync_lookahead = x264_clip3( h->param.i_sync_lookahead, h->param.i_threads + h->param.i_bframe, X264_LOOKAHEAD_MAX );