Inconsistent behavior w.r.t files with no audio or no video
We've noticed the following inconsistencies with a decoding pipeline used to detect audio and video content.
The following terminates:
% gst-launch-1.0 filesrc location="/tmp/audio.mp3" ! decodebin ! videoconvert ! videoscale add-borders=true ! videorate ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Delayed linking failed.
Additional debug info:
./grammar.y(510): void gst_parse_no_more_pads(GstElement *, gpointer) (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0:
failed delayed linking some pad of GstDecodeBin named decodebin0 to some pad of GstVideoConvert named videoconvert0
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpegAudioParse:mpegaudioparse0: Internal data stream error.
Additional debug info:
gstbaseparse.c(3634): void gst_base_parse_loop(GstPad *) (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpegAudioParse:mpegaudioparse0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
zsh: exit 1 gst-launch-1.0 filesrc location="/tmp/bla.mp3" ! decodebin ! videoconvert !
But the following hangs and never returns:
% gst-launch-1.0 filesrc location="/tmp/audio.mp4" ! decodebin ! videoconvert ! videoscale add-borders=true ! videorate ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Delayed linking failed.
Additional debug info:
./grammar.y(510): void gst_parse_no_more_pads(GstElement *, gpointer) (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0:
failed delayed linking some pad of GstDecodeBin named decodebin0 to some pad of GstVideoConvert named videoconvert0
The same happen with video-only content. The problem seems to be linked to the mp4
container.
This is a problem for use because it means that our content-checker code is also stuck, making the whole application freeze