diff options
author | Thibault Saunier <tsaunier@igalia.com> | 2019-01-26 10:35:31 -0300 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2019-05-06 23:43:07 +0200 |
commit | 44dcc1d08d127014aaca645d37ad15e642a98395 (patch) | |
tree | 960e1c6daac87663ece0980d7970de072716144d | |
parent | 2f93c516a16f0e5f8fd147455f5c0735fc91188a (diff) | |
download | gstreamer-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.c | 3 |
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); |