splitmuxsrc: Don't stop and error on EOS flow return

Don't immediately halt on EOS flow return from downstream
due to out of segment. Let the demuxer handle it and send
EOS.
This commit is contained in:
Jan Schmidt 2016-08-03 03:32:07 +10:00
parent 7f0381fdd9
commit 69df65fabe

View file

@ -544,11 +544,11 @@ gst_splitmux_pad_loop (GstPad * pad)
} else { } else {
GstBuffer *buf = (GstBuffer *) (item->object); GstBuffer *buf = (GstBuffer *) (item->object);
GstFlowReturn ret = gst_splitmux_handle_buffer (splitmux, splitpad, buf); GstFlowReturn ret = gst_splitmux_handle_buffer (splitmux, splitpad, buf);
if (G_UNLIKELY (ret != GST_FLOW_OK)) { if (G_UNLIKELY (ret != GST_FLOW_OK && ret != GST_FLOW_EOS)) {
/* Stop immediately on error or flushing */ /* Stop immediately on error or flushing */
GST_INFO_OBJECT (splitpad, "Stopping due to pad_push() result %d", ret); GST_INFO_OBJECT (splitpad, "Stopping due to pad_push() result %d", ret);
gst_pad_pause_task (pad); gst_pad_pause_task (pad);
if (ret <= GST_FLOW_EOS) { if (ret < GST_FLOW_EOS) {
const gchar *reason = gst_flow_get_name (ret); const gchar *reason = gst_flow_get_name (ret);
GST_ELEMENT_ERROR (splitmux, STREAM, FAILED, GST_ELEMENT_ERROR (splitmux, STREAM, FAILED,
(_("Internal data flow error.")), (_("Internal data flow error.")),