From 9f115bfc2ac798c737d0c2a8ec8c96670e814a49 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Tue, 1 May 2018 08:23:45 +0200 Subject: [PATCH] package/vlc: fix build with updated x264 Fixes http://autobuild.buildroot.net/results/909/909d4c1b4bf8b3135607025e12363db1b2196011/ Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- package/vlc/0013-x264.patch | 208 ++++++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 package/vlc/0013-x264.patch diff --git a/package/vlc/0013-x264.patch b/package/vlc/0013-x264.patch new file mode 100644 index 0000000000..a19887ac63 --- /dev/null +++ b/package/vlc/0013-x264.patch @@ -0,0 +1,208 @@ +From: Ilkka Ollakka +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 +--- + +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; -- 2.30.2