Re: [webrtc-pc] Confusion over duplicates in setCodecPreferences? Why allow them? (#2955)

> But requiring an exact match on each parameter in a universal "match algorithm" is problematic if level-assymetry-allowed isn't taken into account in other matching applications, such as determining negotiation faliures.

This seems like a naming problem, since algorithms need to be excplicitly invoked and aren't universal. Let's just call it the "codec dictionary match" algorithm for now.

The [codec dictionary match](https://w3c.github.io/webrtc-pc/#dfn-codec-match) algorithm was added in https://github.com/w3c/webrtc-pc/pull/2847 because codecs aren't exposed as platform objects, and thus `A == previousReadOfA` fails in both JS and c++ (solving only c++ btw; folks in https://github.com/w3c/webrtc-pc/issues/2845 didn't want to go the interface route. E.g. the interface route would have allowed us to modify properties like `A.sdpFmtpLine` over time without affecting the identity of `A`, if that is interesting. Just mentioning it. It was dismissed for legit compat concerns).

> What I am not sure about is when these profiles are considered to "match":

The spec says the two dictionaries are distinct codec inputs to `setCodecPreferences()`, which makes sense to me as them also being distinct in either getCapabilities or getParameters is a precondition.

I don't read anything in the spec that says the "codec dictionary match" algorithm affects negotiation, as it does not appear to be called from there AFAICT. If there is implicit language somewhere that suggests it, we should identify and clarify it.

-- 
GitHub Notification of comment by jan-ivar
Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2955#issuecomment-2061510183 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 17 April 2024 15:13:58 UTC