Comments (5)
The current situation is indeed not good. When adding codecs that are rarely used like H264 with 444 they get added to the SDP, consuming a payload type and increase the size of the SDP (and remember that we had a comparison between the WebRTC SDP and the Empire State building in one slide deck).
setCodecPreferences can be (somewhat) used to limit this but it requires action.
from webrtc-pc.
If we allow setParameters() to enable a disabled codec (https://w3c.github.io/webrtc-extensions/#dom-rtcrtpencodingparameters-codec), the only missing piece is discoverability.
And in simulcast, we deferred discoverability to MediaCapabilities (decodingInfo with "webrtc" - ask, and you shall learn). If we were to address the bug asking for CodecCapability, perhaps we have all the pieces?
from webrtc-pc.
I'll ask for this issue to be discussed at the February WG meeting, since I feel that doing this will make resolving our other issues easier, but want to have WG consensus on the approach before preparing the PR.
from webrtc-pc.
Moving the check from the checking a global state to checking a sender/receiver state, in order to unblock changing sender/receiver capabilities, makes sense to me.
If a codec in a remote offer or answer is on the supported list, but “enabled” is false, “enabled” is set to true. This ensures that the codec is included in subsequent offers and answers. (Note: This is the only part of this reimagining that might include a behavior change, but we suspect that this is the way current implementations behave anyway.)
I think we need to do this for unidirectional codecs anyway? Hopefully we already do it
The final steps to create an offer or answer is not influenced by the current negotiation state, but there is a NOTE in the setCodecPreferences section suggesting that answers should only have codecs that appear in the offer.
I think this NOTE is wrong and should be deleted (#2933). I also think there is some major confusion about a=rtpmap
versus preferences (at least for me, but maybe it's crystal clear for everyone else), so I filed #2932. I also think that Fippo's PR needs to remove this sentence from createAnswer. Does that make sense to everyone or am I still confused?
from webrtc-pc.
This issue was discussed in WebRTC February 2024 meeting – 20 February 2024 (Modify the codec description model to ease describing changes #2925 #2935)
from webrtc-pc.
Related Issues (20)
- Adding and stopping transceiver before first offer will result in unremovable transceiver HOT 3
- QUIC as Transport for Session Traversal Utilities for NAT (STUN) HOT 3
- Applying a remote offer with unsupported codecs results in stale transceiver HOT 2
- Should media capabilities influence what is exposed in what is exposed in WebRTC offers and answers HOT 13
- Consider making RTCIceCandidatePair an interface HOT 5
- Update the accessibility section 14 to include RFC 8865 for real-time text in WebRTC data channel HOT 43
- Clarify a=rtpmap codec mappings should be offered even if the codec is not a preferred one HOT 20
- Existing setCodecPreferences NOTE is wrong and should be deleted HOT 8
- Specify what should happen if filtering [[PreferredCodecs]] on direction results in empty list HOT 7
- setCodecPreferences, sendonly codecs and dummy codecs HOT 21
- If a preferred codec is filtered out, does it still get assigned a PT? HOT 16
- Proposing setCodecPreferences to deal with both send and recv codecs HOT 6
- RTCSessionDescriptionInit vs "local" RTCLocalSessionDescriptionInit HOT 2
- Review mute/unmute/ended and constraints on RTCRtpReceiver's track. HOT 2
- Alternative storage for RTCCertificates needed HOT 6
- simple webrtc connection and manual signaling (QR, JSON, Carrier pigeon) - consent time out prevents connection HOT 3
- RTCIceCandidate's relayProtocol and url members can be null but not absent
- Missing tests for candidate amendments
- Incorporate jitterBufferTarget
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from webrtc-pc.