summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2019-01-26 10:35:31 -0300
committerTim-Philipp Müller <tim@centricular.com>2019-05-06 23:43:07 +0200
commit44dcc1d08d127014aaca645d37ad15e642a98395 (patch)
tree960e1c6daac87663ece0980d7970de072716144d
parent2f93c516a16f0e5f8fd147455f5c0735fc91188a (diff)
downloadgstreamer-plugins-good-44dcc1d08d127014aaca645d37ad15e642a98395.tar.gz
flvdemux: Do not error out if the first added and chained pad is not linked
And let it the oportunity to get its other pad linked Example: ``` $ gst-launch-1.0 uridecodebin uri=file:///home/thiblahute/gst-validate.save/gst-integration-testsuites/testsuites/../medias/defaults/flv/819290236.flv caps=audio/x-raw expose-all-streams=FALSE ! fakesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlvDemux:flvdemux0: Internal data stream error. Additional debug info: ../subprojects/gst-plugins-good/gst/flv/gstflvdemux.c(2760): gst_flv_demux_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlvDemux:flvdemux0: streaming stopped, reason not-linked (-1) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... ```
-rw-r--r--gst/flv/gstflvdemux.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c
index 1f538888b..170c44348 100644
--- a/gst/flv/gstflvdemux.c
+++ b/gst/flv/gstflvdemux.c
@@ -2686,7 +2686,8 @@ gst_flv_demux_loop (GstPad * pad)
}
/* pause if something went wrong or at end */
- if (G_UNLIKELY (ret != GST_FLOW_OK))
+ if (G_UNLIKELY (ret != GST_FLOW_OK) && !(ret == GST_FLOW_NOT_LINKED
+ && !demux->no_more_pads))
goto pause;
gst_object_unref (demux);