<div dir="ltr">Hello,<div><br></div><div>If you have the time, here's a little back story: <a href="https://lists.freedesktop.org/archives/gstreamer-devel/2021-September/079039.html">https://lists.freedesktop.org/archives/gstreamer-devel/2021-September/079039.html</a></div><div><br></div><div>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. </div><div><br></div><div>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</div><div><br></div><div>TCP Sender:</div><div>gst-launch-1.0 rtspsrc location=rtsp://<a href="http://admin:admin@192.168.0.222/defaultPrimary?streamType=u">admin:admin@192.168.0.222/defaultPrimary?streamType=u</a> user-id=admin user-pw=admin ! rtph264depay ! mytypemux ! tcpserversink port=4444<br></div><div><br></div><div>TCP Receiver (working):<br></div><div>gst-launch-1.0 tcpclientsrc host=localhost port=4444 ! decodebin ! nveglglessink<br></div><div><br></div><div>Now it doesn't matter if we switch the camera codec to H265, everything will work!</div><div><br></div><div>RTSP Sender (I used gstreamer rtsp server):</div><div>Here's the launch line provided to <span style=""><font color="#000000" style="--darkreader-inline-color:#e8e6e3;">GstRTSPMediaFactory</font><font color="#ff8080" style="--darkreader-inline-color:#ff7373;"> </font><span style="color:rgb(211,207,201)">which is then mounted on l</span><span style="color:rgb(211,207,201)">ocalhost:8553/test</span><br><span style="color:rgb(211,207,201)">rtspsrc location=rtsp://<a href="http://192.168.0.222/defaultPrimary?streamType=u">192.168.0.222/defaultPrimary?streamType=u</a> latency=100 user-id=admin user-pw=admin ! rtph264depay ! h264parse ! mytypemux</span><span style="color:rgb(211,207,201)"> ! </span>rtpgstpay<span style="color:rgb(211,207,201)"> name=pay0 pt=96</span><br></span></div><div><br></div><div><br></div><div>RTSP Receiver (not working):</div><div>gst-launch-1.0 gst-launch-1.0 -e rtspsrc location=rtsp://localhost:8553/test ! rtpgstdepay ! decodebin ! nveglglessink<br></div><div><br></div><div>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.</div><div><br></div><div>I tried to put capssetter replace=true and typefind force-caps=ANY before the decodebin but that didn't work as well. </div><div><br></div><div>I am using Gstreamer 1.16.2</div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Best Regards,<br>Eslam Ahmed</div></div></div></div></div>