GNOME Bugzilla – Bug 650423
Ordering-dependent bug with mpegtsdemux, h264parse, ac3parse, and matroskamux
Last modified: 2011-05-17 20:28:38 UTC
Created attachment 187981 [details] GST_DEBUG=5 log of the failure. When I run the pipeline ./gst-jhbuild run gst-launch-0.10 filesrc location=clip.mts ! mpegtsdemux name=demux ! ac3parse ! queue ! matroskamux name=mux ! filesink location=clip.mkv . demux. ! h264parse ! queue ! mux. it runs fine, although it eventually fails as documented in #650416. If I instead run ./gst-jhbuild run gst-launch-0.10 filesrc location=clip.mts ! mpegtsdemux name=demux ! h264parse ! queue ! matroskamux name=mux ! filesink location=clip.mkv . demux. ! ac3parse ! queue ! mux. then the launcher immediately fails with 0:00:00.193190536 10350 0x97d1088 ERROR GST_PIPELINE ./grammar.y:614:gst_parse_perform_link: could not link ac3parse0 to queue1 These two pipelines are identical except for the order in which the streams are expressed. In my limited understanding of gstreamer, these two pipelines are different syntactic representations of the exact same semantics, so I was very surprised to see one succeed and one fail.
You probably need to use: ... ! ac3parse ! queue ! mux.audio_%d (i.e., specify the pad template you want to link to.) The reason for this is that the parser uses pad template caps to determine which REQUEST pad to create, and queue has "ANY" as pad template caps. I'm marking this as NOTABUG, but if I'm incorrect, please reopen.