8d5667f185
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> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
107 lines
3.2 KiB
Diff
107 lines
3.2 KiB
Diff
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
|
||
|