summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ext/speex/gstspeexdec.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3df6c333..f125177d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-25 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+
+ * ext/speex/gstspeexdec.c: (gst_speex_dec_init),
+ (speex_dec_convert):
+ sinkconvert function so oggdemux can get the file length (totem).
+
2004-10-25 James Morrison <ja2morri@csclub.uwaterloo.ca>
Reviewd by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c
index f362c4a1..7b4ef94f 100644
--- a/ext/speex/gstspeexdec.c
+++ b/ext/speex/gstspeexdec.c
@@ -170,6 +170,7 @@ gst_speex_dec_init (GstSpeexDec * dec)
(&speex_dec_sink_factory), "sink");
gst_pad_set_chain_function (dec->sinkpad, speex_dec_chain);
gst_pad_set_formats_function (dec->sinkpad, speex_dec_get_formats);
+ gst_pad_set_convert_function (dec->sinkpad, speex_dec_convert);
gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
dec->srcpad =
@@ -203,6 +204,10 @@ speex_dec_convert (GstPad * pad,
if (dec->packetno < 1)
return FALSE;
+ if (pad == dec->sinkpad &&
+ (src_format == GST_FORMAT_BYTES || *dest_format == GST_FORMAT_BYTES))
+ return FALSE;
+
switch (src_format) {
case GST_FORMAT_TIME:
switch (*dest_format) {