diff options
-rw-r--r-- | ext/x264/gstx264enc.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c index 903dfd17..29bbd50d 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, @@ -2925,7 +2956,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; |