| From 0088753651350de3060ece22c1be4153b6009515 Mon Sep 17 00:00:00 2001 |
| From: Peter Korsgaard <jacmet@sunsite.dk> |
| Date: Wed, 25 Jan 2012 23:53:04 +0100 |
| Subject: [PATCH] base: vorbisdeclib: support modern Tremor versions |
| |
| Reported upstream as https://bugzilla.gnome.org/show_bug.cgi?id=668726 |
| |
| 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 legacy _ogg_packet_wrapper code is only used for |
| Tremolo. |
| |
| Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> |
| --- |
| ext/vorbis/gstvorbisdeclib.h | 77 ++++++++++++++++++++++------------------- |
| 1 files changed, 41 insertions(+), 36 deletions(-) |
| |
| 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); |
| -- |
| 1.7.8.3 |
| |