I've got a problem with receiving data from an old Kasenna server.
This server stores files and streams them on demand.
It accepts RTSP connections and understand RTSP protocol statements, but differs from the modern VOD streaming servers in two aspects:
- it sends XML-like data instead of SDP and calls them application/x-rtsp-mh
- it sends raw mpeg2-ts data over UDP, its packets don't have RTP headers.
I've patched RTSPsrc, and now it can detect Kasenna server from the "Server:" header in responses, and translate x-rtsp-mh message to the SDP one.
Everything is happening in playbin2.
Currently RTSPsrc creates two udpsrcs and links one of them with typefind element (see the attached picture player.png).
The link from rtspsrc to the typefind has caps video/mpegts, systemstream = true, packetsize = 188, npt-start = 0, npt-stop=3170000000, play-speed=1, play-scale=1
It is the MPEG-2 transport stream, indeed, but its head contains several dozens of zeroes.
However, typefind element detects it as "video/mpeg, systemstream=false, mpegversion=1".
Since I'm in the middle of patching rtspsrc I can affect its outgoing caps in any manner.
How should I change them, so that typefind detect the stream correctly?