Skip to contentSkip to conversation

package/vlc: fix build with updated x264

PATCH New Bernd Kuhls 2 participants 2 messages May 1, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/vlc: fix build with updated x264

Fixes
http://autobuild.buildroot.net/results/909/909d4c1b4bf8b3135607025e12363db1b2196011/

---
 package/vlc/0013-x264.patch | 208 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 208 insertions(+)
 create mode 100644 package/vlc/0013-x264.patch
package/vlc/0013-x264.patch new file +208 -0
new file mode 100644
index 0000000000..a19887ac63
@@ -0,0 +1,208 @@
+From: Ilkka Ollakka <[email protected]>
+Date: Sat, 24 Mar 2018 11:23:33 +0000 (+0200)
+Subject: x264: drop <148 build support and fix 10bit support
+X-Git-Url: http://git.videolan.org/?p=vlc.git;a=commitdiff_plain;h=a8953ba707cca1f2de372ca24513296bcfcdaaa8
+
+x264: drop <148 build support and fix 10bit support
+
+Drop old #if as 148 is not that recent anymore.
+
+fixes #19581
+
+Rebased upstream commit
+http://git.videolan.org/?p=vlc.git;a=commitdiff;h=a8953ba707cca1f2de372ca24513296bcfcdaaa8
+
+Signed-off-by: Bernd Kuhls <[email protected]>
+---
+
+diff --git a/modules/codec/x264.c b/modules/codec/x264.c
+index e02048f075..bcf3c89a10 100644
+--- a/modules/codec/x264.c
++++ b/modules/codec/x264.c
+@@ -84,13 +84,7 @@ static void x264_log( void *, int i_level, const char *psz, va_list );
+     "I-frames, but do not start a new GOP." )
+ 
+ #define OPENGOP_TEXT N_("Use recovery points to close GOPs")
+-#if X264_BUILD < 115
+-#define OPENGOP_LONGTEXT N_("none: use closed GOPs only\n"\
+-    "normal: use standard open GOPs\n" \
+-    "bluray: use Blu-ray compatible open GOPs" )
+-#else
+ #define OPENGOP_LONGTEXT N_("use open GOP, for bluray compatibility use also bluray-compat option")
+-#endif
+ 
+ #define BLURAY_TEXT N_("Enable compatibility hacks for Blu-ray support")
+ #define BLURAY_LONGTEXT N_("Enable hacks for Blu-ray support, this doesn't enforce every aspect of Blu-ray compatibility\n" \
+@@ -469,16 +463,10 @@ vlc_module_begin ()
+     add_integer( SOUT_CFG_PREFIX "min-keyint", 25, MIN_KEYINT_TEXT,
+                  MIN_KEYINT_LONGTEXT, true )
+ 
+-#if X264_BUILD >= 102 && X264_BUILD <= 114
+-    add_string( SOUT_CFG_PREFIX "opengop", "none", OPENGOP_TEXT,
+-               OPENGOP_LONGTEXT, true )
+-        change_string_list( x264_open_gop_names, x264_open_gop_names )
+-#elif X264_BUILD > 114
+     add_bool( SOUT_CFG_PREFIX "opengop", false, OPENGOP_TEXT,
+                OPENGOP_LONGTEXT, true )
+     add_bool( SOUT_CFG_PREFIX "bluray-compat", false, BLURAY_TEXT,
+                BLURAY_LONGTEXT, true )
+-#endif
+ 
+     add_integer( SOUT_CFG_PREFIX "scenecut", 40, SCENE_TEXT,
+                  SCENE_LONGTEXT, true )
+@@ -498,13 +486,8 @@ vlc_module_begin ()
+                  B_BIAS_LONGTEXT, true )
+         change_integer_range( -100, 100 )
+ 
+-#if X264_BUILD >= 87
+     add_string( SOUT_CFG_PREFIX "bpyramid", "normal", BPYRAMID_TEXT,
+               BPYRAMID_LONGTEXT, true )
+-#else
+-    add_string( SOUT_CFG_PREFIX "bpyramid", "none", BPYRAMID_TEXT,
+-              BPYRAMID_LONGTEXT, true )
+-#endif
+         change_string_list( bpyramid_list, bpyramid_list )
+ 
+     add_bool( SOUT_CFG_PREFIX "cabac", true, CABAC_TEXT, CABAC_LONGTEXT,
+@@ -541,22 +524,18 @@ vlc_module_begin ()
+     add_bool( SOUT_CFG_PREFIX "interlaced", false, INTERLACED_TEXT, INTERLACED_LONGTEXT,
+               true )
+ 
+-#if X264_BUILD >= 111
+     add_integer( SOUT_CFG_PREFIX "frame-packing", -1, FRAMEPACKING_TEXT, FRAMEPACKING_LONGTEXT, true )
+         change_integer_list( framepacking_list, framepacking_list_text )
+         change_integer_range( -1, 5)
+-#endif
+ 
+     add_integer( SOUT_CFG_PREFIX "slices", 0, SLICE_COUNT, SLICE_COUNT_LONGTEXT, true )
+     add_integer( SOUT_CFG_PREFIX "slice-max-size", 0, SLICE_MAX_SIZE, SLICE_MAX_SIZE_LONGTEXT, true )
+     add_integer( SOUT_CFG_PREFIX "slice-max-mbs", 0, SLICE_MAX_MBS, SLICE_MAX_MBS_LONGTEXT, true )
+ 
+-#if X264_BUILD >= 89
+     add_string( SOUT_CFG_PREFIX "hrd", "none", HRD_TEXT, HRD_TEXT, true )
+         vlc_config_set (VLC_CONFIG_LIST,
+             (sizeof(x264_nal_hrd_names) / sizeof (char*)) - 1,
+             x264_nal_hrd_names, x264_nal_hrd_names);
+-#endif
+ 
+ 
+ /* Ratecontrol */
+@@ -842,20 +821,14 @@ static int  Open ( vlc_object_t *p_this )
+     fullrange = var_GetBool( p_enc, SOUT_CFG_PREFIX "fullrange" );
+     p_enc->fmt_in.i_codec = fullrange ? VLC_CODEC_J420 : VLC_CODEC_I420;
+     p_sys->i_colorspace = X264_CSP_I420;
+-#if X264_BUILD >= 118
+     char *psz_profile = var_GetString( p_enc, SOUT_CFG_PREFIX "profile" );
+-    if( psz_profile )
+-    {
+-        const int mask = x264_bit_depth > 8 ? X264_CSP_HIGH_DEPTH : 0;
+-
+-
+ # ifdef MODULE_NAME_IS_x26410b
+-        if( mask == 0)
+-        {
+-            msg_Err( p_enc, "Only high bith depth encoding supported, bit depth:%d", x264_bit_depth);
+-            return VLC_EGENERIC;
+-        }
++    const int mask = X264_CSP_HIGH_DEPTH;
++# else
++    const int mask = 0;
+ # endif
++    if( psz_profile )
++    {
+ 
+         if( !strcmp( psz_profile, "high10" ) )
+         {
+@@ -878,7 +851,6 @@ static int  Open ( vlc_object_t *p_this )
+             msg_Err( p_enc, "Only high-profiles and 10-bit are supported");
+             return VLC_EGENERIC;
+         }
+-
+ # endif
+     }
+ # ifdef MODULE_NAME_IS_x26410b
+@@ -889,7 +861,6 @@ static int  Open ( vlc_object_t *p_this )
+     }
+ # endif
+     free( psz_profile );
+-#endif //X264_BUILD
+ 
+     p_enc->pf_encode_video = Encode;
+     p_enc->pf_encode_audio = NULL;
+@@ -912,6 +883,10 @@ static int  Open ( vlc_object_t *p_this )
+ #else
+     x264_param_default( &p_sys->param );
+     x264_param_default_preset( &p_sys->param, psz_preset, psz_tune );
++# if X264_BUILD > 152
++    if( mask )
++        p_sys->param.i_bitdepth = 10;
++# endif
+ #endif
+     free( psz_preset );
+     free( psz_tune );
+@@ -1089,10 +1064,8 @@ static int  Open ( vlc_object_t *p_this )
+     if( fabs( var_GetFloat( p_enc, SOUT_CFG_PREFIX "aq-strength" ) - 1.0) > 0.005 )
+        p_sys->param.rc.f_aq_strength = var_GetFloat( p_enc, SOUT_CFG_PREFIX "aq-strength" );
+ 
+-#if X264_BUILD >= 111
+     if( var_GetInteger( p_enc, SOUT_CFG_PREFIX "frame-packing" ) > -1 )
+        p_sys->param.i_frame_packing = var_GetInteger( p_enc, SOUT_CFG_PREFIX "frame-packing" );
+-#endif
+ 
+     if( var_GetBool( p_enc, SOUT_CFG_PREFIX "verbose" ) )
+         p_sys->param.i_log_level = X264_LOG_DEBUG;
+@@ -1108,26 +1081,14 @@ static int  Open ( vlc_object_t *p_this )
+ 
+     i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "keyint" );
+     if( i_val > 0 && i_val != 250 ) p_sys->param.i_keyint_max = i_val;
+-#if X264_BUILD >= 102
+     if( i_val == -1 ) p_sys->param.i_keyint_max = X264_KEYINT_MAX_INFINITE;
+-#endif
+ 
+     i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "min-keyint" );
+     if( i_val > 0 && i_val != 25 ) p_sys->param.i_keyint_min = i_val;
+ 
+-#if X264_BUILD >= 102 && X264_BUILD <= 114
+-    psz_val = var_GetString( p_enc, SOUT_CFG_PREFIX "opengop" );
+-    if( !strcmp( psz_val, "none" ) )
+-        p_sys->param.i_open_gop = X264_OPEN_GOP_NONE;
+-    else if( !strcmp( psz_val, "normal" ) )
+-        p_sys->param.i_open_gop = X264_OPEN_GOP_NORMAL;
+-    else if( !strcmp( psz_val, "bluray" ) )
+-        p_sys->param.i_open_gop = X264_OPEN_GOP_BLURAY;
+-    free( psz_val );
+-#elif X264_BUILD >= 115
+     p_sys->param.b_open_gop = var_GetBool( p_enc, SOUT_CFG_PREFIX "opengop" );
+     p_sys->param.b_bluray_compat = var_GetBool( p_enc, SOUT_CFG_PREFIX "bluray-compat" );
+-#endif
++
+     i_val = var_GetInteger( p_enc, SOUT_CFG_PREFIX "bframes" );
+     if( i_val >= 0 && i_val <= 16 && i_val != 3 )
+         p_sys->param.i_bframe = i_val;
+@@ -1165,14 +1126,12 @@ static int  Open ( vlc_object_t *p_this )
+     if( i_val >= 1 && i_val != 7 )
+         p_sys->param.analyse.i_subpel_refine = i_val;
+ 
+-#if X264_BUILD >= 89
+     psz_val = var_GetString( p_enc, SOUT_CFG_PREFIX "hrd");
+     if( !strcmp( psz_val, "vbr" ) )
+         p_sys->param.i_nal_hrd = X264_NAL_HRD_VBR;
+     else if( !strcmp( psz_val, "cbr" ) )
+         p_sys->param.i_nal_hrd = X264_NAL_HRD_CBR;
+     free( psz_val );
+-#endif
+ 
+     //TODO: psz_val == NULL ?
+     psz_val = var_GetString( p_enc, SOUT_CFG_PREFIX "me" );
+@@ -1531,11 +1490,7 @@ 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 = p_sys->i_colorspace;
Signature · 1 line
2.14.2
#1 lore raw

PATCH 1/1 package/vlc: fix build with updated x264

Hello Bernd,

Quoted 8 lines · Bernd Kuhls

Fixes
http://autobuild.buildroot.net/results/909/909d4c1b4bf8b3135607025e12363db1b2196011/

---
 package/vlc/0013-x264.patch | 208 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 208 insertions(+)
 create mode 100644 package/vlc/0013-x264.patch

I've applied, and then pushed a commit that changes all VLC patches to be Git formatted. Please always use Git formatted patches for packages that use Git as their upstream version control system.

For VLC, the repository at
https://git.videolan.org/?p=vlc/vlc-2.2.git;a=summary has a 2.2.8 tag, and the new stack of patches applies on this Git tag.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com