asfdemux: fix bogus flow return handling in eos handler
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 29 May 2009 19:07:14 +0000 (20:07 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Sat, 30 May 2009 12:08:15 +0000 (13:08 +0100)
Don't overwrite the origin flow return by whatever flow we get
when trying to push the remaining internally queued payloads.
We want to do our eos logic, ie. send an EOS event or segment-done
message in any case. Makes things EOS properly when an EOS event
is forced upon the pipeline so that the source returns
FLOW_UNEXPECTED to a pulling asfdemux. Should fix #582056.

gst/asfdemux/gstasfdemux.c

index 1027981..2ef5fb8 100644 (file)
@@ -1349,13 +1349,9 @@ eos:
      * less data queued than required for preroll; force stream activation and
      * send any pending payloads before sending EOS */
     if (!demux->activated_streams)
-      flow = gst_asf_demux_push_complete_payloads (demux, TRUE);
-
-    if (GST_FLOW_IS_FATAL (flow) || flow == GST_FLOW_NOT_LINKED) {
-      GST_DEBUG_OBJECT (demux, "pushing complete payloads failed");
-      goto pause;
-    }
+      gst_asf_demux_push_complete_payloads (demux, TRUE);
 
+    /* we want to push an eos or post a segment-done in any case */
     if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) {
       gint64 stop;