Previously, I submitted a patch "[PATCH v2][packages]gst-plugins-base: disable building ivorbis plugin" that disables ivorbis plugin build. Michel Stempin pointed out an upstream patch that fixes the issue directly in the vorbis decoder header. I had missed this patch in my previous searches.
This patch reverts the disabling of ivorbis and adds the upstream fix. I have tested this patch and it fixes the build issue. Thanks to Michel Stempin for bringing this to my attention and pointing me to the upstream fix. Signed-off-by John Vogel <[email protected]> -- diff --git a/multimedia/gst-plugins-base/Makefile b/multimedia/gst-plugins-base/Makefile index 9951c3f..9c16586 100644 --- a/multimedia/gst-plugins-base/Makefile +++ b/multimedia/gst-plugins-base/Makefile @@ -86,7 +86,6 @@ CONFIGURE_ARGS += \ $(call GST_COND_SELECT,gio) \ --disable-gnome_vfs \ --disable-gst_v4l \ - --disable-ivorbis \ --disable-libvisual \ $(call GST_COND_SELECT,ogg) \ --disable-oggtest \ diff --git a/multimedia/gst-plugins-base/patches/004-vorbisdec-support_modern_Tremor_versions.patch b/multimedia/gst-plugins-base/patches/004-vorbisdec-support_modern_Tremor_versions.patch new file mode 100644 index 0000000..be357e3 --- /dev/null +++ b/multimedia/gst-plugins-base/patches/004-vorbisdec-support_modern_Tremor_versions.patch @@ -0,0 +1,135 @@ +From 787e896bdeb6c67d13a918ec55d3826fa010fb90 Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard <[email protected]> +Date: Wed, 25 Jan 2012 22:53:04 +0000 +Subject: vorbisdec: support modern Tremor versions + +Tremor changed to use standard libogg rather than its own incompatible +copy back in Aug 2010 (r17375), causing gst-plugin-base build to fail. + +Tremolo so far unfortunately hasn't been updated. Restructure +vorbisdeclib.h so the int/float logic is seperate from the ogg handling, +and only use the legacy _ogg_packet_wrapper code for Tremolo. + +https://bugzilla.gnome.org/show_bug.cgi?id=668726 +--- +(limited to 'ext/vorbis/gstvorbisdeclib.h') + +diff --git a/ext/vorbis/gstvorbisdeclib.h b/ext/vorbis/gstvorbisdeclib.h +index ca00af9..e147591 100644 +--- a/ext/vorbis/gstvorbisdeclib.h ++++ b/ext/vorbis/gstvorbisdeclib.h +@@ -29,11 +29,6 @@ + + #ifndef TREMOR + +-#include <vorbis/codec.h> +- +-typedef float vorbis_sample_t; +-typedef ogg_packet ogg_packet_wrapper; +- + #define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to float audio" + + #define GST_VORBIS_DEC_SRC_CAPS \ +@@ -47,6 +42,42 @@ typedef ogg_packet ogg_packet_wrapper; + + #define GST_VORBIS_DEC_GLIB_TYPE_NAME GstVorbisDec + ++#else /* TREMOR */ ++ ++#define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to integer audio" ++ ++#define GST_VORBIS_DEC_SRC_CAPS \ ++ GST_STATIC_CAPS ("audio/x-raw-int, " \ ++ "rate = (int) [ 1, MAX ], " \ ++ "channels = (int) [ 1, 6 ], " \ ++ "endianness = (int) BYTE_ORDER, " \ ++ "width = (int) { 16, 32 }, " \ ++ "depth = (int) 16, " \ ++ "signed = (boolean) true") ++ ++#define GST_VORBIS_DEC_DEFAULT_SAMPLE_WIDTH (16) ++ ++/* we need a different type name here */ ++#define GST_VORBIS_DEC_GLIB_TYPE_NAME GstIVorbisDec ++ ++/* and still have it compile */ ++typedef struct _GstVorbisDec GstIVorbisDec; ++typedef struct _GstVorbisDecClass GstIVorbisDecClass; ++ ++#endif /* TREMOR */ ++ ++#ifndef USE_TREMOLO ++ ++#ifdef TREMOR ++ #include <tremor/ivorbiscodec.h> ++ typedef ogg_int32_t vorbis_sample_t; ++#else ++ #include <vorbis/codec.h> ++ typedef float vorbis_sample_t; ++#endif ++ ++typedef ogg_packet ogg_packet_wrapper; ++ + static inline guint8 * + gst_ogg_packet_data (ogg_packet * p) + { +@@ -72,17 +103,11 @@ gst_ogg_packet_from_wrapper (ogg_packet_wrapper * packet) + return packet; + } + +-#else +- +-#ifdef USE_TREMOLO +- #include <Tremolo/ivorbiscodec.h> +- #include <Tremolo/codec_internal.h> +- typedef ogg_int16_t vorbis_sample_t; +-#else +- #include <tremor/ivorbiscodec.h> +- typedef ogg_int32_t vorbis_sample_t; +-#endif ++#else /* USE_TREMOLO */ + ++#include <Tremolo/ivorbiscodec.h> ++#include <Tremolo/codec_internal.h> ++typedef ogg_int16_t vorbis_sample_t; + typedef struct _ogg_packet_wrapper ogg_packet_wrapper; + + struct _ogg_packet_wrapper { +@@ -91,26 +116,6 @@ struct _ogg_packet_wrapper { + ogg_buffer buf; + }; + +-#define GST_VORBIS_DEC_DESCRIPTION "decode raw vorbis streams to integer audio" +- +-#define GST_VORBIS_DEC_SRC_CAPS \ +- GST_STATIC_CAPS ("audio/x-raw-int, " \ +- "rate = (int) [ 1, MAX ], " \ +- "channels = (int) [ 1, 6 ], " \ +- "endianness = (int) BYTE_ORDER, " \ +- "width = (int) { 16, 32 }, " \ +- "depth = (int) 16, " \ +- "signed = (boolean) true") +- +-#define GST_VORBIS_DEC_DEFAULT_SAMPLE_WIDTH (16) +- +-/* we need a different type name here */ +-#define GST_VORBIS_DEC_GLIB_TYPE_NAME GstIVorbisDec +- +-/* and still have it compile */ +-typedef struct _GstVorbisDec GstIVorbisDec; +-typedef struct _GstVorbisDecClass GstIVorbisDecClass; +- + /* compensate minor variation */ + #define vorbis_synthesis(a, b) vorbis_synthesis (a, b, 1) + +@@ -154,7 +159,7 @@ gst_ogg_packet_from_wrapper (ogg_packet_wrapper * packet) + return &(packet->packet); + } + +-#endif ++#endif /* USE_TREMOLO */ + + typedef void (*CopySampleFunc)(vorbis_sample_t *out, vorbis_sample_t **in, + guint samples, gint channels, gint width); +-- +cgit v0.9.0.2-2-gbebe _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
