Autoplugger (decodebin) not running typefinding

Eslam Ahmed eslam.ahmed at avidbeam.com
Tue Sep 28 14:48:18 UTC 2021


Hello,

If you have the time, here's a little back story:
https://lists.freedesktop.org/archives/gstreamer-devel/2021-September/079039.html

I'll try to be as brief as possible here. I am developing a new media type
(encoded video) that has built-in variable-size per-frame basis
metadata support that is supposed to work regardless of the codec used.
Let's call this new type video/x-mytype.

To make this possible at the sender, I store the codec that was in place
before adding the metadata in the metadata itself and transforming the
encoded input video to video/x-mytype. This is to allow the receiver to
figure out the caps that will be exposed when reversing the previous
operation (i.e. extracting the original encoded video from video/x-mytype).
Furthermore, I registered a new typefinding function, in the mytypedmux
element, that is able to simultaneously recognize video/x-mytype, obtain
the metadata and figure out which caps to expose on the src pad of
mytypedmux. This worked like a charm when transmitting video/x-mytype over
TCP but not over RTSP. Here are the pipelines

TCP Sender:
gst-launch-1.0 rtspsrc location=rtsp://
admin:admin at 192.168.0.222/defaultPrimary?streamType=u user-id=admin
user-pw=admin ! rtph264depay ! mytypemux ! tcpserversink port=4444

TCP Receiver (working):
gst-launch-1.0 tcpclientsrc host=localhost port=4444 ! decodebin !
nveglglessink

Now it doesn't matter if we switch the camera codec to H265, everything
will work!

RTSP Sender (I used gstreamer rtsp server):
Here's the launch line provided to GstRTSPMediaFactory which is then
mounted on localhost:8553/test
rtspsrc location=rtsp://192.168.0.222/defaultPrimary?streamType=u
latency=100 user-id=admin user-pw=admin ! rtph264depay ! h264parse !
mytypemux ! rtpgstpay name=pay0 pt=96


RTSP Receiver (not working):
gst-launch-1.0 gst-launch-1.0 -e rtspsrc
location=rtsp://localhost:8553/test ! rtpgstdepay ! decodebin !
nveglglessink

The problem here is that the autoplugger (decodebin) is not calling my
typefinding function and in turn I am not able to figure out which caps to
expose.

I tried to put capssetter replace=true and typefind force-caps=ANY before
the decodebin but that didn't work as well.

I am using Gstreamer 1.16.2

Best Regards,
Eslam Ahmed
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210928/8e73c8ff/attachment.htm>


More information about the gstreamer-devel mailing list