Oggdemux seeking fail with theora
This is the major reason the theora rtsp validate tests fail
In a nutshell:
- Seek to a position via rtsp-server
- oggdemux in rtsp-server has an off-by-one error in where the keyframe really is
- oggdemux outputs a wrong (off by one frame duration) segment start value
- oggdemux starts outputting from the page containing that (off by one) keyframe
- payloader (rightfully) doesn't set any PTS
- udpsink (rightfully) drops the out-of-segment buffer
This ends up in having to wait a long time for the next keyframe to arrive, even potentially locking the player client-side (audio arrives, but video never arrives before maximum buffering).
Note that one wouldn't see this issue with regular (non-rtsp) playback because the demuxer would (almost all the time) output from the proper page, so the decoder would still have the data (even though it would end up clipping that first frame).
I've lost my sanity trying to figure out what would cause that off-by-one error, someone else please look into it.