From 8d5667f185d4c0ce2cdaf0800b4f5680256d6a5c Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Mon, 30 Apr 2018 21:47:17 +0200 Subject: [PATCH] gst1-plugins-ugly: fix x264 compile failure Add upstream patch to fix compile with latest x264 library. Fixes [1]: gstx264enc.c: In function 'plugin_init': gstx264enc.c:2900:36: error: 'x264_bit_depth' undeclared (first use in this function); did you mean 'x264_picture_t'? default_vtable.x264_bit_depth = &x264_bit_depth; ^~~~~~~~~~~~~~ x264_picture_t [1] http://autobuild.buildroot.net/results/a766a28c584534b6a30839cfd98428d840bce3f2 Signed-off-by: Peter Seiderer Signed-off-by: Peter Korsgaard --- ...d-with-newer-x264-with-support-for-m.patch | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 package/gstreamer1/gst1-plugins-ugly/0001-x264enc-fix-build-with-newer-x264-with-support-for-m.patch diff --git a/package/gstreamer1/gst1-plugins-ugly/0001-x264enc-fix-build-with-newer-x264-with-support-for-m.patch b/package/gstreamer1/gst1-plugins-ugly/0001-x264enc-fix-build-with-newer-x264-with-support-for-m.patch new file mode 100644 index 0000000000..c7460470ae --- /dev/null +++ b/package/gstreamer1/gst1-plugins-ugly/0001-x264enc-fix-build-with-newer-x264-with-support-for-m.patch @@ -0,0 +1,106 @@ +From ffa7ce1e19ec3930de667f213dcaedb7eb10508e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= +Date: Wed, 28 Feb 2018 10:07:13 +0000 +Subject: [PATCH] x264enc: fix build with newer x264 with support for multiple + bit depths +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +libx264 used to be built for one specific bit depth, and if we +wanted to support multiple bit depths we would have to dynamically +load the right .so from different paths. That has changed now, and +libx264 can include support for multiple depths in the same lib, +so we don't need to do the dlopen() dance any more. We'll keep +the vtable stuff around until we can drop support for older x264. + +gstx264enc.c:2927:36: error: ‘x264_bit_depth’ undeclared + +https://bugzilla.gnome.org/show_bug.cgi?id=792111 + +Upstream: https://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/patch/ext/x264?id=83c38dc44622611c1f67dd26e4cb383c5aef90f6 +Signed-off-by: Peter Seiderer +--- + ext/x264/gstx264enc.c | 35 ++++++++++++++++++++++++++++++++++- + 1 file changed, 34 insertions(+), 1 deletion(-) + +diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c +index 4287cf9..d1e4f2b 100644 +--- a/ext/x264/gstx264enc.c ++++ b/ext/x264/gstx264enc.c +@@ -117,7 +117,9 @@ struct _GstX264EncVTable + { + GModule *module; + ++#if X264_BUILD < 153 + const int *x264_bit_depth; ++#endif + const int *x264_chroma_format; + void (*x264_encoder_close) (x264_t *); + int (*x264_encoder_delayed_frames) (x264_t *); +@@ -170,8 +172,9 @@ load_x264 (const gchar * filename) + "' from '%s'. Incompatible version?", filename); + goto error; + } +- ++#if X264_BUILD < 153 + LOAD_SYMBOL (x264_bit_depth); ++#endif + LOAD_SYMBOL (x264_chroma_format); + LOAD_SYMBOL (x264_encoder_close); + LOAD_SYMBOL (x264_encoder_delayed_frames); +@@ -288,6 +291,7 @@ gst_x264_enc_add_x264_chroma_format (GstStructure * s, + return ret; + } + ++#if X264_BUILD < 153 + static gboolean + load_x264_libraries (void) + { +@@ -326,6 +330,33 @@ load_x264_libraries (void) + return TRUE; + } + ++#else /* X264_BUILD >= 153 */ ++ ++static gboolean ++load_x264_libraries (void) ++{ ++#if X264_BIT_DEPTH == 0 /* all */ ++ vtable_8bit = &default_vtable; ++ vtable_10bit = &default_vtable; ++#elif X264_BIT_DEPTH == 8 ++ vtable_8bit = &default_vtable; ++#elif X264_BIT_DEPTH == 10 ++ vtable_10bit = &default_vtable; ++#else ++#error "unexpected X264_BIT_DEPTH value" ++#endif ++ ++#ifdef HAVE_X264_ADDITIONAL_LIBRARIES ++ GST_WARNING ("Ignoring configured additional libraries %s, using libx264 " ++ "version enabled for multiple bit depths", ++ HAVE_X264_ADDITIONAL_LIBRARIES); ++#endif ++ ++ return TRUE; ++} ++ ++#endif ++ + enum + { + ARG_0, +@@ -2897,7 +2928,9 @@ plugin_init (GstPlugin * plugin) + * if needed. We can't initialize statically because these values are not + * constant on Windows. */ + default_vtable.module = NULL; ++#if X264_BUILD < 153 + default_vtable.x264_bit_depth = &x264_bit_depth; ++#endif + default_vtable.x264_chroma_format = &x264_chroma_format; + default_vtable.x264_encoder_close = x264_encoder_close; + default_vtable.x264_encoder_delayed_frames = x264_encoder_delayed_frames; +-- +2.16.3 + -- 2.39.2