summaryrefslogtreecommitdiffstats
path: root/ext/speex/gstspeexenc.h
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2004-09-28 16:44:12 +0000
committerWim Taymans <wim.taymans@gmail.com>2004-09-28 16:44:12 +0000
commit2748ae95482b17103909d2b9f0d65f3fb0948388 (patch)
treeb09f604391722085286899789fb0c3c58d38f88d /ext/speex/gstspeexenc.h
parent0089ff9ed3851854071c74e82039b95e38940641 (diff)
ext/speex/: Rewrote speex encoder, make sure it can be embedded in ogg.
Original commit message from CVS: * ext/speex/gstspeex.c: (plugin_init): * ext/speex/gstspeexdec.c: (gst_speex_dec_base_init), (gst_speex_dec_class_init), (speex_dec_get_formats), (speex_get_event_masks), (speex_get_query_types), (gst_speex_dec_init), (speex_dec_convert), (speex_dec_src_query), (speex_dec_src_event), (speex_dec_event), (speex_dec_chain), (gst_speexdec_get_property), (gst_speexdec_set_property), (speex_dec_change_state): * ext/speex/gstspeexdec.h: * ext/speex/gstspeexenc.c: (gst_speexenc_get_formats), (gst_speexenc_get_type), (speex_caps_factory), (raw_caps_factory), (gst_speexenc_base_init), (gst_speexenc_class_init), (gst_speexenc_sinkconnect), (gst_speexenc_convert_src), (gst_speexenc_convert_sink), (gst_speexenc_get_query_types), (gst_speexenc_src_query), (gst_speexenc_init), (gst_speexenc_get_tag_value), (comment_init), (comment_add), (gst_speexenc_metadata_set1), (gst_speexenc_set_metadata), (gst_speexenc_setup), (gst_speexenc_buffer_from_data), (gst_speexenc_push_buffer), (gst_speexenc_set_header_on_caps), (gst_speexenc_chain), (gst_speexenc_get_property), (gst_speexenc_set_property), (gst_speexenc_change_state): * ext/speex/gstspeexenc.h: Rewrote speex encoder, make sure it can be embedded in ogg. Implemented speex decoder.
Diffstat (limited to 'ext/speex/gstspeexenc.h')
-rw-r--r--ext/speex/gstspeexenc.h51
1 files changed, 46 insertions, 5 deletions
diff --git a/ext/speex/gstspeexenc.h b/ext/speex/gstspeexenc.h
index 4677f6a1..a8a83805 100644
--- a/ext/speex/gstspeexenc.h
+++ b/ext/speex/gstspeexenc.h
@@ -23,6 +23,7 @@
#include <gst/gst.h>
+#include <gst/bytestream/adapter.h>
#include <speex.h>
#include <speex_header.h>
@@ -43,6 +44,17 @@ extern "C" {
#define GST_IS_SPEEXENC_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_SPEEXENC))
+#define MAX_FRAME_SIZE 2000*2
+#define MAX_FRAME_BYTES 2000
+
+typedef enum
+{
+ GST_SPEEXENC_MODE_AUTO,
+ GST_SPEEXENC_MODE_UWB,
+ GST_SPEEXENC_MODE_WB,
+ GST_SPEEXENC_MODE_NB,
+} GstSpeexMode;
+
typedef struct _GstSpeexEnc GstSpeexEnc;
typedef struct _GstSpeexEncClass GstSpeexEncClass;
@@ -58,14 +70,43 @@ struct _GstSpeexEnc {
SpeexBits bits;
SpeexHeader header;
- SpeexMode *mode;
+ SpeexMode *speex_mode;
void *state;
+ GstSpeexMode mode;
+ GstAdapter *adapter;
+
+ gfloat quality;
+ gint bitrate;
+ gboolean vbr;
+ gint abr;
+ gboolean vad;
+ gboolean dtx;
+ gint complexity;
+ gint nframes;
+
+ gint lookahead;
+
+ gint channels;
+ gint rate;
+
+ gboolean setup;
+ gboolean header_sent;
+ gboolean eos;
+
+ guint64 samples_in;
+ guint64 bytes_out;
+
+ GstTagList *tags;
+
+ gchar *last_message;
+
gint frame_size;
- gint16 buffer[2000];
- gint bufsize;
- guint64 next_ts;
+ guint64 frameno;
+
+ gchar *comments;
+ gint comment_len;
- gint rate;
+ gfloat input[MAX_FRAME_SIZE];
};
struct _GstSpeexEncClass {