Don't immediately halt on EOS flow return from downstream
due to out of segment. Let the demuxer handle it and send
EOS.
} else {
GstBuffer *buf = (GstBuffer *) (item->object);
GstFlowReturn ret = gst_splitmux_handle_buffer (splitmux, splitpad, buf);
} else {
GstBuffer *buf = (GstBuffer *) (item->object);
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 */
GST_INFO_OBJECT (splitpad, "Stopping due to pad_push() result %d", ret);
gst_pad_pause_task (pad);
/* Stop immediately on error or flushing */
GST_INFO_OBJECT (splitpad, "Stopping due to pad_push() result %d", ret);
gst_pad_pause_task (pad);
- if (ret <= GST_FLOW_EOS) {
+ if (ret < GST_FLOW_EOS) {
const gchar *reason = gst_flow_get_name (ret);
GST_ELEMENT_ERROR (splitmux, STREAM, FAILED,
(_("Internal data flow error.")),
const gchar *reason = gst_flow_get_name (ret);
GST_ELEMENT_ERROR (splitmux, STREAM, FAILED,
(_("Internal data flow error.")),