diff options
author | Thomas Vander Stichele <thomas@apestaart.org> | 2004-12-23 14:45:25 +0000 |
---|---|---|
committer | Thomas Vander Stichele <thomas@apestaart.org> | 2004-12-23 14:45:25 +0000 |
commit | 5701e846db35810e932631ad32742576791a8895 (patch) | |
tree | 54748d20799177ca5aaf321e77fb036108222a9d | |
parent | 3b494824c00a059358bfd95a79e43c4abb19fcbf (diff) |
Fixes #158382. Make speex plugin compatible with both 1.0 and 1.1.
Original commit message from CVS:
* configure.ac:
* ext/speex/gstspeexdec.h:
* ext/speex/gstspeexenc.h:
Fixes #158382. Make speex plugin compatible with both 1.0 and 1.1.
Fix detection code in configure.ac
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | configure.ac | 11 | ||||
-rw-r--r-- | ext/speex/gstspeexdec.h | 41 | ||||
-rw-r--r-- | ext/speex/gstspeexenc.h | 72 |
4 files changed, 76 insertions, 56 deletions
@@ -1,3 +1,11 @@ +2004-12-23 Thomas Vander Stichele <thomas at apestaart dot org> + + * configure.ac: + * ext/speex/gstspeexdec.h: + * ext/speex/gstspeexenc.h: + Fixes #158382. Make speex plugin compatible with both 1.0 and 1.1. + Fix detection code in configure.ac + 2004-12-23 Ronald S. Bultje <rbultje@ronald.bitfreak.net> * gst/matroska/matroska-demux.c: diff --git a/configure.ac b/configure.ac index 97064bbe..00f99652 100644 --- a/configure.ac +++ b/configure.ac @@ -1575,10 +1575,10 @@ GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [ AC_SUBST(SPEEX_CFLAGS) AC_SUBST(SPEEX_LIBS) ], [ - GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, [ - AC_CHECK_HEADER(speex_jitter.h, [ + GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex/speex.h, [ + AC_CHECK_HEADER(speex/speex_jitter.h, [ dnl speex 1.1.x : - GST_CHECK_LIBHEADER(SPEEX, speex, speex_encode_int, , speex.h, [ + GST_CHECK_LIBHEADER(SPEEX, speex, speex_encode_int, , speex/speex.h, [ dnl speex 1.1.5 or + : HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex" @@ -1595,9 +1595,14 @@ GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [ SPEEX_LIBS="-lspeex" AC_SUBST(SPEEX_CFLAGS) AC_SUBST(SPEEX_LIBS) + + AC_DEFINE_UNQUOTED(SPEEX_1_0, 1, + [defined if speex 1.0.x API detected]) ],[ HAVE_SPEEX="no" AC_MSG_NOTICE(You need at least 1.0.4 to compile the speex plugin) + ], [ +#include <speex/speex.h> ]) ]) ]) diff --git a/ext/speex/gstspeexdec.h b/ext/speex/gstspeexdec.h index f0cd61c0..f60a679e 100644 --- a/ext/speex/gstspeexdec.h +++ b/ext/speex/gstspeexdec.h @@ -21,7 +21,6 @@ #ifndef __GST_SPEEXDEC_H__ #define __GST_SPEEXDEC_H__ - #include <gst/gst.h> #include <speex/speex.h> #include <speex/speex_callbacks.h> @@ -32,7 +31,6 @@ extern "C" { #endif /* __cplusplus */ - #define GST_TYPE_SPEEXDEC \ (gst_speex_dec_get_type()) #define GST_SPEEXDEC(obj) \ @@ -50,25 +48,30 @@ typedef struct _GstSpeexDecClass GstSpeexDecClass; #define DEC_MAX_FRAME_SIZE 2000 struct _GstSpeexDec { - GstElement element; + GstElement element; /* pads */ - GstPad *sinkpad,*srcpad; - - void *state; - SpeexStereoState stereo; - const SpeexMode * mode; - SpeexHeader *header; - SpeexCallback callback; - SpeexBits bits; - - gfloat output[DEC_MAX_FRAME_SIZE]; - - gboolean enh; - - gint frame_size; - guint64 samples_out; - guint64 packetno; + GstPad *sinkpad, + *srcpad; + + void *state; + SpeexStereoState stereo; +#ifdef SPEEX_1_0 + SpeexMode *mode; +#else + const SpeexMode *mode; +#endif + SpeexHeader *header; + SpeexCallback callback; + SpeexBits bits; + + gfloat output[DEC_MAX_FRAME_SIZE]; + + gboolean enh; + + gint frame_size; + guint64 samples_out; + guint64 packetno; }; struct _GstSpeexDecClass { diff --git a/ext/speex/gstspeexenc.h b/ext/speex/gstspeexenc.h index 0c002031..8f01811d 100644 --- a/ext/speex/gstspeexenc.h +++ b/ext/speex/gstspeexenc.h @@ -59,54 +59,58 @@ typedef struct _GstSpeexEnc GstSpeexEnc; typedef struct _GstSpeexEncClass GstSpeexEncClass; struct _GstSpeexEnc { - GstElement element; + GstElement element; /* pads */ - GstPad *sinkpad, - *srcpad; + GstPad *sinkpad, + *srcpad; - gint packet_count; - gint n_packets; + gint packet_count; + gint n_packets; - SpeexBits bits; - SpeexHeader header; - const SpeexMode *speex_mode; - void *state; - GstSpeexMode mode; - GstAdapter *adapter; + SpeexBits bits; + SpeexHeader header; +#if SPEEX_1_0 + SpeexMode *speex_mode; +#else + const SpeexMode *speex_mode; +#endif + void *state; + GstSpeexMode mode; + GstAdapter *adapter; - gfloat quality; - gint bitrate; - gboolean vbr; - gint abr; - gboolean vad; - gboolean dtx; - gint complexity; - gint nframes; + gfloat quality; + gint bitrate; + gboolean vbr; + gint abr; + gboolean vad; + gboolean dtx; + gint complexity; + gint nframes; - gint lookahead; + gint lookahead; - gint channels; - gint rate; + gint channels; + gint rate; - gboolean setup; - gboolean header_sent; - gboolean eos; + gboolean setup; + gboolean header_sent; + gboolean eos; - guint64 samples_in; - guint64 bytes_out; + guint64 samples_in; + guint64 bytes_out; - GstTagList *tags; + GstTagList *tags; - gchar *last_message; + gchar *last_message; - gint frame_size; - guint64 frameno; + gint frame_size; + guint64 frameno; - gchar *comments; - gint comment_len; + gchar *comments; + gint comment_len; - gfloat input[MAX_FRAME_SIZE]; + gfloat input[MAX_FRAME_SIZE]; }; struct _GstSpeexEncClass { |