Continued NACK Improvements
- Currently nack is sent in a fixed intervals.
- There is no limit for how many times a nack will be sent for a single packet (current implementation sends nacks as long as either the packet arrives, or the packet is older than
max sequence number - buffer size) - Nacked packets/nack requests are sent using the same PayloadType as normal rtp packets. It is possbile to send them in a dedicated feedback stream. This is much more complicated, and current implementation works, so it should definietly be an improvement in a separate issue.
Is it normal that the NACK SSRC is random? https://github.com/pion/interceptor/blob/0ee4264763aea2c10d447866f4916982d8e2346c/pkg/nack/generator_interceptor.go#L116
I didn't saw the specification, but the receiver SSRC should be shared between reports and nacks, therefore it is random but at a higher level.
Edit: i realized that interceptors work with a variable number of streams, therefore they must be able to generate SSRCs - but they must be shared between NACKs and receiver reports. We have to find a way to make it so.
@aler9 I think the best way to do this is the Option pattern we use in Pion.
You can see it in GeneratorOption there is also a ResponderOption in the same directory. Instead of doing a 'Configuration Struct' or a bunch of function arguments we do this.
We should add one to set the SSRC. If one isn't set then we can do random!