summaryrefslogtreecommitdiffstats
path: root/ext/speex/gstspeexenc.h
diff options
context:
space:
mode:
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 {