diff options
Diffstat (limited to 'ext/speex/gstspeexdec.c')
-rw-r--r-- | ext/speex/gstspeexdec.c | 5 |
1 files changed, 5 insertions, 0 deletions
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) { |