GNOME Bugzilla – Bug 773357
Tsdemux regression: failed delayed linking some pad of GstTSDemux named demux to some pad of GstQueue named queue0
Last modified: 2016-10-23 22:52:54 UTC
Created attachment 338269 [details] Example dump.ts transport stream When attempting to demultiplex a transport stream, linking fails as follows: pi@towerofpi9:~/packages/gstreamer-master$ LD_LIBRARY_PATH=/usr/local/lib gst-launch-1.0 --gst-debug=1 filesrc location=/tmp/dump.ts ! tsdemux emit-stats=true name=demux ! queue ! mpegvideoparse ! fakesink demux. ! queue ! mpegaudioparse ! fakesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... WARNING: from element /GstPipeline:pipeline0/GstTSDemux:demux: Delayed linking failed. Additional debug info: ./grammar.y(506): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstTSDemux:demux: failed delayed linking some pad of GstTSDemux named demux to some pad of GstQueue named queue0 WARNING: from element /GstPipeline:pipeline0/GstTSDemux:demux: Delayed linking failed. Additional debug info: ./grammar.y(506): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstTSDemux:demux: failed delayed linking some pad of GstTSDemux named demux to some pad of GstQueue named queue1 ^Chandling interrupt. Interrupt: Stopping pipeline ... ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... The example stream is attached.
Thanks for the bug report and the stream dump. Your pipeline fails for me with 1.8 in the same way. The reason is that the stream contains AAC audio and H264 video, yet you plug parsers for MPEG-2 video and MP3 audio. $ gst-discoverer-1.0 ~/samples/misc/773357-dump-tsdemux-delayed-linking.ts ... container: MPEG-2 Transport Stream subtitles: DVB subtitles audio: MPEG-4 AAC audio: MPEG-4 AAC video: H.264
Ah - I had changed the channel from a DVB-T to a DVB-T2 channel, and hadn't realised the codecs had changed. Is there a realistic way to trigger an error message of some kind to indicate what this failure really means?
Nope. You can use parsebin to get the right parsers plugged automatically.
Does parsebin have any documention or examples? The source for parsebin includes a detailed "Implementation notes" section, but no indication of how to use it in practise. A google for "gstreamer parsebin example" comes up with nothing. Specifically, can parsebin be used alongside OMX decoders and encoders?