From 881982fdd1df4ff14bafe250977a760d1365f8f3 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Wed, 22 Sep 2004 07:55:37 +0000 Subject: [PATCH] gst/asfdemux/gstasfdemux.c: Prevent infinite loops. More correct error reporting. Original commit message from CVS: * gst/asfdemux/gstasfdemux.c: (_read_var_length), (_read_guid), (gst_asf_demux_process_segment), (gst_asf_demux_handle_data), (gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event): Prevent infinite loops. More correct error reporting. * gst/auparse/gstauparse.c: (gst_auparse_chain): Error out if negotiation fails. * gst/playback/gstplaybasebin.c: (setup_source), (gst_play_base_bin_change_state), (gst_play_base_bin_error), (gst_play_base_bin_found_tag): Error/tag forwarding. Pre-roll fixes for source errors on state changes (e.g. "file does not exist") to prevent hangs. --- ChangeLog | 14 ++++++++++++++ gst/auparse/gstauparse.c | 1 + 2 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index e80b4db664..bb049861ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2004-09-22 Ronald S. Bultje + + * gst/asfdemux/gstasfdemux.c: (_read_var_length), (_read_guid), + (gst_asf_demux_process_segment), (gst_asf_demux_handle_data), + (gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event): + Prevent infinite loops. More correct error reporting. + * gst/auparse/gstauparse.c: (gst_auparse_chain): + Error out if negotiation fails. + * gst/playback/gstplaybasebin.c: (setup_source), + (gst_play_base_bin_change_state), (gst_play_base_bin_error), + (gst_play_base_bin_found_tag): + Error/tag forwarding. Pre-roll fixes for source errors on state + changes (e.g. "file does not exist") to prevent hangs. + 2004-09-21 Zaheer Abbas Merali * testsuite/multifilesink/Makefile.am: diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c index 944e0bd601..a9a764f385 100644 --- a/gst/auparse/gstauparse.c +++ b/gst/auparse/gstauparse.c @@ -340,6 +340,7 @@ Samples : } if (!gst_pad_set_explicit_caps (auparse->srcpad, tempcaps)) { + GST_ELEMENT_ERROR (auparse, CORE, NEGOTIATION, (NULL), (NULL)); gst_buffer_unref (buf); gst_object_unref (GST_OBJECT (auparse->srcpad)); auparse->srcpad = NULL;