An SFU's ability to forward a scalability mode may depend on the negotiated header extensions.
For example, if the content is e2e encrypted, then negotiation of a suitable header extension (e.g. the AV1 Descriptor RTP header extension) may be required to forward any SVC mode, since the codec payload will be opaque to the SFU.
So while on the browser, RtpReceiver.getCapabilities() is static (e.g. returns the same value regardless of the state of O/A negotiation), this may not be true on an SFU. That is, an SFU might return a different set of supported SVC modes depending on the negotiated header extensions.
An SFU's ability to forward a scalability mode may depend on the negotiated header extensions. For example, if the content is e2e encrypted, then negotiation of a suitable header extension (e.g. the AV1 Descriptor RTP header extension) may be required to forward any SVC mode, since the codec payload will be opaque to the SFU.
So while on the browser, RtpReceiver.getCapabilities() is static (e.g. returns the same value regardless of the state of O/A negotiation), this may not be true on an SFU. That is, an SFU might return a different set of supported SVC modes depending on the negotiated header extensions.
This needs to be pointed out somewhere.