a problem linking elements with gst-launch-1.0

William Johnston wgj at cast.uark.edu
Sun Apr 26 06:41:04 UTC 2020


I am about to give up on this. It now feels to me like a bug in gst-launch:

The short story is this doesn't work:

gst-launch-1.0 filesrc location=/home/wgj/video/Truck.H264.ts name=fs    
misbdemux name=md    tsdemux name=td    h264parse name=hp    avdec_h264 
name=ad    videoconvert name=vc misbfixcoordinates name=mf   misbsink 
name=ms  \
fs.src ! md.sink  \
md.misbsrc ! mf.misbsink   mf.misbsrc ! ms.sink  \
md.src ! td.sink   td. ! hp.sink   hp.src ! ad.sink   ad.src ! vc.sink   
vc.src ! mf.videosink   mf.videosrc ! ms.videosink

It give the error:
WARNING: erroneous pipeline: could not link vc to mf

But it should be able to link vc to mf and in fact it does if I leave 
off the other path:

gst-launch-1.0 filesrc location=/home/wgj/video/Truck.H264.ts name=fs    
misbdemux name=md    tsdemux name=td    h264parse name=hp    avdec_h264 
name=ad    videoconvert name=vc misbfixcoordinates name=mf   misbsink 
name=ms  \
fs.src ! md.sink  \
md.src ! td.sink   td. ! hp.sink   hp.src ! ad.sink   ad.src ! vc.sink   
vc.src ! mf.videosink   mf.videosrc ! ms.videosink

Now it works. I can't think of anything that would cause it to work in 
one case and fail in the other. I'm completely stumped, but I hardly 
understand gstreamer so that's not a surprise.

The problem element is misbfixcoordinate. I could post the code for it. 
It's pretty basic though. It has two sink pads (one video and one 
meta/klv)  and it has two source pads  (one video and one meta/klv). 
Right now there is a chain function on each pad that simply pushes the 
received buffer out the corresponding source pad. There is an event 
function attached to each sink pad. There is a query function attached 
to each source pad. Both the event functions and the query functions 
simply call the default gst pad functions. So misbfixcoordinate is 
simply a minimalistic element with two inputs and two outputs.

Does anyone have any thoughts on what might be the problem?
The next thing I'm going to try is to write an application that forces 
the linking to occur. Does anyone think that might work? Or not work?



More information about the gstreamer-devel mailing list