From 40cec75c3f14d98d085cd8d3f705829144446b77 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Thu, 23 Sep 2004 14:59:22 +0000 Subject: ext/dirac/: Do something. Don't actually know if this works because I don't have a demuxer yet. Original commit message from CVS: * ext/dirac/Makefile.am: * ext/dirac/gstdirac.cc: * ext/dirac/gstdiracdec.cc: * ext/dirac/gstdiracdec.h: Do something. Don't actually know if this works because I don't have a demuxer yet. * ext/gsm/gstgsmdec.c: (gst_gsmdec_getcaps): Add channels=1 to caps returned from _getcaps(). * ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_get_type), (gst_ogm_video_parse_get_type), (gst_ogm_audio_parse_base_init), (gst_ogm_video_parse_base_init), (gst_ogm_parse_init), (gst_ogm_audio_parse_init), (gst_ogm_video_parse_init), (gst_ogm_parse_sink_convert), (gst_ogm_parse_chain), (gst_ogm_parse_change_state): Separate between audio/video so ogmaudioparse actually uses the audio pad templates. Both audio and video work now, including autoplugging. Also use sometimes-srcpad hack. * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): Handle events better. Don't hang on infinite loops. * gst/avi/gstavidemux.c: (gst_avi_demux_class_init), (gst_avi_demux_init), (gst_avi_demux_reset), (gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query), (gst_avi_demux_stream_header), (gst_avi_demux_stream_data), (gst_avi_demux_change_state): * gst/avi/gstavidemux.h: Improve A/V sync. Still not perfect. * gst/matroska/ebml-read.c: (gst_ebml_read_seek), (gst_ebml_read_skip): Handle events better. * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event), (gst_qtdemux_loop_header), (qtdemux_parse_trak), (qtdemux_audio_caps): Add IMA4. Improve event handling. Save offset after a seek when the headers are at the end of the file so that we don't end up in an infinite loop. * gst/typefind/gsttypefindfunctions.c: (qt_type_find): Add low-priority typefind support for files with no length. --- gst/matroska/ebml-read.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gst/matroska') diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c index db5d4a5c..6face5ad 100644 --- a/gst/matroska/ebml-read.c +++ b/gst/matroska/ebml-read.c @@ -350,7 +350,11 @@ gst_ebml_read_seek (GstEbmlRead * ebml, guint64 offset) GST_WARNING ("No discontinuity event after seek - seek failed"); break; } else if (GST_EVENT_TYPE (event) != GST_EVENT_DISCONTINUOUS) { + GstEventType type = GST_EVENT_TYPE (event); + gst_pad_event_default (ebml->sinkpad, event); + if (type == GST_EVENT_EOS || type == GST_EVENT_INTERRUPT) + return NULL; event = NULL; } } @@ -389,8 +393,9 @@ gst_ebml_read_skip (GstEbmlRead * ebml) return gst_bytestream_flush (ebml->bs, length); if (!(event = gst_ebml_read_seek (ebml, - gst_bytestream_tell (ebml->bs) + length))) + gst_bytestream_tell (ebml->bs) + length))) { return FALSE; + } gst_event_unref (event); -- cgit