New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Codec Capability Options #277

Closed
robin-raymond opened this Issue Nov 11, 2015 · 1 comment

Comments

Projects
None yet
2 participants
@robin-raymond
Copy link
Contributor

robin-raymond commented Nov 11, 2015

The text in 9.3.2 Codec capability options correctly reads:
If a defined codec option is unset when returned from RTCRtpReceiver/Sender.getCapabilities(), then the engine does not allow adjusting the option. If set when returned from RTCRtpReceiver/Sender.getCapabilities() then the default value for the engine is given.

But then in the table we have:

Property Name   Values  Receiver/Sender Notes
complexity  boolean Sender  Indicates whether the sender supports configuring the encoder's computational comiplexity (if true) or not (if false).
signal  boolean Sender  Indicates whether the sender supports configuring the type of signal being encoded (if true) or not (if false).
application boolean Sender  Indicates whether the sender supports configuring the encoder's intended application (if true) or not (if false).
packetLossPerc  boolean Sender  Indicates whether the sender supports configuring the encoder's expected packet loss percentage (if true) or not (if false).
predictionDisabled  boolean Sender  Indicates whether the sender supports configuring whether prediction is disabled (if true) or not (if false).

Each property being a boolean value indicating if it's supported or not. This

The settings in the Opus Codec Parameters however have the correct information for the entries above:

complexity  unsigned long   Sender  Configures the encoder's computational comiplexity. The supported range is 0-10 with 10 representing the highest complexity.
signal  DOMString   Sender  Configures the type of signal being encoded. Possible values are "auto", "music" and "voice".
application DOMString   Sender  Configures the encoder's intended application. Possible values are "voip", "audio" and "lowdelay".
packetLossPerc  unsigned long   Sender  Configures the encoder's expected packet loss percentage. Possible values are 0-100.
predictionDisabled  boolean Sender  Configures whether prediction is disabled, making frames almost complete independent (if true) or not (if false).

NOTE: The reason why the first table has the wrong values is a historical remainder. This was before deciding that "unset" means the setting is supported/not supported. So at the time they needed a property to indicate the value was valid/not valid. But now we have "unset" so they instead should indicate the default value for the engine as described in the text.

@aboba

This comment has been minimized.

Copy link
Contributor

aboba commented Nov 16, 2015

But what values do the capability options contain? The default values for those options?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment