summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2007-05-30 12:46:32 +0000
committerTim-Philipp Müller <tim@centricular.net>2007-05-30 12:46:32 +0000
commitf91649edb8533db09349c20a2b7fa2ca514c2c1d (patch)
treefdeadb596c5ba10512cff4d443f0c61b68e053c0 /gst
parent0ea8d875a28e3902a01f7265e92ed6d16519c13f (diff)
gst/avi/gstavidemux.c: Make _push_event() return TRUE if the event could be pushed on at least one pad and not only i...
Original commit message from CVS: * gst/avi/gstavidemux.c: (gst_avi_demux_push_event), (gst_avi_demux_loop): Make _push_event() return TRUE if the event could be pushed on at least one pad and not only if it could be pushed on all pads, otherwise we'll end up posting an error message on EOS if one or more source pads are not connected.
Diffstat (limited to 'gst')
-rw-r--r--gst/avi/gstavidemux.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 89944554..54ecb12e 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -2451,22 +2451,22 @@ gst_avi_demux_calculate_durations_from_index (GstAviDemux * avi)
static gboolean
gst_avi_demux_push_event (GstAviDemux * avi, GstEvent * event)
{
+ gboolean result = FALSE;
gint i;
- gboolean result = TRUE;
- GST_DEBUG_OBJECT (avi, "sending event to %d streams", avi->num_streams);
+ GST_DEBUG_OBJECT (avi, "sending %s event to %d streams",
+ GST_EVENT_TYPE_NAME (event), avi->num_streams);
+
if (avi->num_streams) {
for (i = 0; i < avi->num_streams; i++) {
avi_stream_context *stream = &avi->stream[i];
if (stream->pad) {
gst_event_ref (event);
- result &= gst_pad_push_event (stream->pad, event);
+ if (gst_pad_push_event (stream->pad, event))
+ result = TRUE;
}
}
- } else {
- /* return error, as the event was not send */
- result = FALSE;
}
gst_event_unref (event);
return result;
@@ -3725,9 +3725,10 @@ pause:
if (push_eos) {
GST_INFO_OBJECT (avi, "sending eos");
if (!(gst_avi_demux_push_event (avi, gst_event_new_eos ()))) {
- /* if we don't error out here it will hand */
+ /* if we don't error out here it will hang */
GST_ELEMENT_ERROR (avi, STREAM, FAILED,
- (_("Internal data stream error.")), ("corrupted file"));
+ (_("Internal data stream error.")),
+ ("downstream did not handle EOS"));
}
}
}