Hi all,
I noticed something weird while testing Chrome M67 with Janus. I started getting weird srtp_err_status_replay_fail errors for incoming SRTCP packets after a renegotiation. Specifically, the errors start appearing for SRTCP packets related to SSRCs that stay the same: e.g., if you add video to an audio-only PeerConnection, you get a new video SSRC but the audio SSRC stays the same, and trying to process the related SRTCP packets after the new offer/answer exchange causes the error; if you just update the session without touching anything at all (e.g., just for the purpose of an ICE restart), the same thing happens for both audio and video, as in that case both SSRCs remain the same.
I noticed that the errors didn't occur forever, but only for a short time, which was pretty much in line with how much time passed between the PeerConnection creation and the renegotiation, which made me suspect an SRTCP index reset of some sort: basically, my guess was that once the index gets to X+1, where X is the last index used before the renegotion occurred, no clash occurs in the SRTCP world anymore, and so the error goes away.
As a test I printed the SRTCP index for incoming packets, and I could indeed confirm that after a renegotiations they start from 1 again. This did NOT happen in M66 and previous versions. Was this intentional, or is this a regression? If intentional, what was the rationale, considering it breaks RTCP for SSRCs that don't change? I tried looking for an open issue on the tracker, but couldn't find any: if this is a bug, I can open a new one.
Thanks,
Lorenzo