diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2004-09-28 16:44:12 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2004-09-28 16:44:12 +0000 |
commit | 2748ae95482b17103909d2b9f0d65f3fb0948388 (patch) | |
tree | b09f604391722085286899789fb0c3c58d38f88d /ext/speex/gstspeexenc.h | |
parent | 0089ff9ed3851854071c74e82039b95e38940641 (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.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 { |