diff options
Diffstat (limited to 'ext/speex/gstspeexenc.h')
-rw-r--r-- | ext/speex/gstspeexenc.h | 51 |
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 { |