* [Buildroot] [PATCH v1] gst1-plugins-ugly: fix x264 compile failure
@ 2018-04-30 19:47 Peter Seiderer
2018-05-06 21:18 ` Peter Korsgaard
0 siblings, 1 reply; 2+ messages in thread
From: Peter Seiderer @ 2018-04-30 19:47 UTC (permalink / raw)
To: buildroot
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 <ps.report@gmx.net>
---
...-build-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?= <tim@centricular.com>
+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 <ps.report@gmx.net>
+---
+ 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.16.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Buildroot] [PATCH v1] gst1-plugins-ugly: fix x264 compile failure
2018-04-30 19:47 [Buildroot] [PATCH v1] gst1-plugins-ugly: fix x264 compile failure Peter Seiderer
@ 2018-05-06 21:18 ` Peter Korsgaard
0 siblings, 0 replies; 2+ messages in thread
From: Peter Korsgaard @ 2018-05-06 21:18 UTC (permalink / raw)
To: buildroot
>>>>> "Peter" == Peter Seiderer <ps.report@gmx.net> writes:
> 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 <ps.report@gmx.net>
Committed, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-05-06 21:18 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-30 19:47 [Buildroot] [PATCH v1] gst1-plugins-ugly: fix x264 compile failure Peter Seiderer
2018-05-06 21:18 ` Peter Korsgaard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.