After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 773357 - Tsdemux regression: failed delayed linking some pad of GstTSDemux named demux to some pad of GstQueue named queue0
Tsdemux regression: failed delayed linking some pad of GstTSDemux named demux...
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-10-22 14:48 UTC by minfrin
Modified: 2016-10-23 22:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Example dump.ts transport stream (1.26 MB, application/octet-stream)
2016-10-22 14:48 UTC, minfrin
Details

Description minfrin 2016-10-22 14:48: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.
Comment 1 Tim-Philipp Müller 2016-10-23 15:58:46 UTC
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
Comment 2 minfrin 2016-10-23 21:55:54 UTC
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?
Comment 3 Tim-Philipp Müller 2016-10-23 22:20:09 UTC
Nope. You can use parsebin to get the right parsers plugged automatically.
Comment 4 minfrin 2016-10-23 22:52:54 UTC
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?