Open makkarpov opened 3 years ago
Hello @makkarpov! :wave: we're sorry you found a bug... so first of all, thank you very much for reporting it.
To know about progress, check in Triage. All issues are considered Backlog Candidates until work priorities align and the issue is selected for development. It will then become part of our official Backlog.
Prerequisites
These are MANDATORY, otherwise the issue will be automatically closed.
Issue description
Same setup as in #586, but now with encryption. Less important (and much more difficult to do), so feel free to close it as 'wontfix'.
The issue occurs when someone is broadcasting encrypted RTP stream, and RTP packet counter rolls over. Since RTP has only 16 bits of packet counter, SRTP maintains "hidden" upper part of it, called "ROC" or "roll-over counter". Various RFC's say that if you want to join an already running session, you have to supply it's value out of band.
So here is the request: allow it to be supplied.
How to reproduce?
Unfortunately, this is much harder than previous one:
Unfortunately, I don't know easy ways to extract current ROC from media frameworks. ffmpeg definitely sucks at that, since I looked at their source code and there is literally no way to do it without patching. gstreamer seems to be better, at least gstreamer is aware of ROC existence (from documentation of srtpdec block):
Another possible way to reproduce is to "reverse" the set up: