]> git.sesse.net Git - vlc/blobdiff - modules/codec/x264.c
Protect XInitThreads() with a global lock
[vlc] / modules / codec / x264.c
index e291eaaa1270486ab9c4584f715fc9c52a7020bb..29ad78b5098b70f20804e84ed270a761e21d832c 100644 (file)
@@ -437,8 +437,13 @@ vlc_module_begin ()
                  B_BIAS_LONGTEXT, false )
         change_integer_range( -100, 100 )
 
+#if X264_BUILD >= 87
+    add_string( SOUT_CFG_PREFIX "bpyramid", "normal", NULL, BPYRAMID_TEXT,
+              BPYRAMID_LONGTEXT, false )
+#else
     add_string( SOUT_CFG_PREFIX "bpyramid", "none", NULL, BPYRAMID_TEXT,
               BPYRAMID_LONGTEXT, false )
+#endif
         change_string_list( bpyramid_list, bpyramid_list, 0 );
 
     add_bool( SOUT_CFG_PREFIX "cabac", true, NULL, CABAC_TEXT, CABAC_LONGTEXT,
@@ -902,16 +907,19 @@ static int  Open ( vlc_object_t *p_this )
     p_sys->param.b_intra_refresh = var_GetBool( p_enc, SOUT_CFG_PREFIX "intra-refresh" );
 
     psz_val = var_GetString( p_enc, SOUT_CFG_PREFIX "bpyramid" );
-    if( strcmp( psz_val, "none" ) )
+    if( !strcmp( psz_val, "normal" ) )
     {
-       if ( !strcmp( psz_val, "strict" ) )
-       {
-          p_sys->param.i_bframe_pyramid = X264_B_PYRAMID_STRICT;
-       } else if ( !strcmp( psz_val, "normal" ) )
-       {
-          p_sys->param.i_bframe_pyramid = X264_B_PYRAMID_NORMAL;
-       }
+        p_sys->param.i_bframe_pyramid = X264_B_PYRAMID_NORMAL;
+    }
+    else if ( !strcmp( psz_val, "strict" ) )
+    {
+        p_sys->param.i_bframe_pyramid = X264_B_PYRAMID_STRICT;
+    }
+    else if ( !strcmp( psz_val, "none" ) )
+    {
+        p_sys->param.i_bframe_pyramid = X264_B_PYRAMID_NONE;
     }
+
     free( psz_val );
 
     i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "ref" );
@@ -1143,7 +1151,6 @@ static int  Open ( vlc_object_t *p_this )
         {
             msg_Dbg( p_enc, "Limiting to main-profile");
             p_sys->param.analyse.b_transform_8x8 = 0;
-            p_sys->param.i_bframe_pyramid = X264_B_PYRAMID_NONE;
         }
         /* high profile don't restrict stuff*/
     }
@@ -1262,7 +1269,11 @@ static block_t *Encode( encoder_t *p_enc, picture_t *p_pict )
     int i_nal=0, i_out=0, i=0;
 
     /* init pic */
+#if X264_BUILD >= 98
+    x264_picture_init( &pic );
+#else
     memset( &pic, 0, sizeof( x264_picture_t ) );
+#endif
     if( likely(p_pict) ) {
        pic.i_pts = p_pict->date;
        pic.img.i_csp = X264_CSP_I420;