- From: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Date: Tue, 17 Nov 2015 21:30:08 +0000
- To: "public-ortc@w3.org" <public-ortc@w3.org>
- Message-ID: <BLUPR03MB149B491D34F779B3D744EBBEC1D0@BLUPR03MB149.namprd03.prod.outlook.com>
>From Robin Raymond: https://github.com/openpeer/ortc/issues/260 https://github.com/openpeer/ortc/issues/259 https://github.com/openpeer/ortc/issues/258 https://github.com/openpeer/ortc/issues/254 https://github.com/openpeer/ortc/issues/252 Proposed resolution: Add capability and parameter sections to the specification, as follows: 9.3.2 Codec capability options The capability options of commonly implemented codecs are provided below. 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. 9.3.2.1 Opus The following capability options are defined for Opus: Property Name Values Receiver/Sender Notes complexity unsigned long Sender Indicates the default value for the encoder's computational complexity. The supported range is 0-10 with 10 representing the highest complexity. signal DOMString Sender Indicates the default value for the type of signal being encoded. Possible values are "auto", "music" and "voice". application DOMString Sender Indicates the default value for the encoder's intended application. Possible values are "voip", "audio" and "lowdelay". packetLossPerc unsigned long Sender Indicates the default value for the encoder's expected packet loss percentage. Possible values are 0-100. predictionDisabled boolean Sender Indicates the default value for whether prediction is disabled, making frames almost complete independent (if true) or not (if false). 9.3.3 Codec capability parameters The capability parameters for commonly implemented codecs are provided below. If a defined codec capability parameter is unset when returned from RTCRtpReceiver/Sender.getCapabilities(), then the engine does not allow adjusting the parameter. If set when returned from RTCRtpReceiver/Sender.getCapabilities() then the default value for the engine is given. 9.3.3.1 Opus The following optional capability parameters are defined for Opus, as noted in [RFC7587] Section 6.1: Property Name Values Receiver/Sender Notes maxPlaybackRate unsigned long Receiver A hint about the maximum output sampling rate that the receiver is capable of rendering in Hz. spropMaxCaptureRate unsigned long Sender A hint about the maximum input sampling rate that the sender is likely to produce. ptime unsigned long Receiver The preferred duration of media represented by a packet that a decoder wants to receive in milliseconds. maxAverageBitrate unsigned long Receiver Specifies the maximum average receive bitrate of a session in bits per second (bits/s). stereo boolean Receiver Specifies whether the decoder prefers receiving stereo (if true) or mono signals (if false). spropStereo boolean Sender Specifies whether the sender is likely to produce stereo audio (if true) or mono signals (if false). cbr boolean Receiver Specifies if the decoder prefers the use of constant bitrate (if true) or variable bitrate (if false). useInbandFec boolean Receiver Specifies if the decoder has the capability to take advantage of Opus in-band fec (if true) or not (if false). useDtx boolean Receiver Specifies if the decoder prefers the use of DTX (if true) or not (if false). 9.3.3.2 VP8 The following receiver capability parameters are defined for VP8, as noted in [VP8-RTP] Section 6.1: Property Name Values Receiver/Sender Notes maxFr unsigned long Receiver This parameter indicates the maximum frame rate in frames per second that the decoder is capable of decoding. maxFs unsigned long long Receiver This parameter indicates the maximum frame size in macroblocks that the decoder is capable of decoding. 9.3.3.3 H.264 The following capabilities are defined for H.264, as noted in [RFC6184] Section 8.1, and [RTCWEB-VIDEO] Section 6.2. Property Name Values Receiver/Sender Notes profileLevelId unsigned long Receiver This parameter, which describes the maximum capability of the decoder,must be supported, as noted in [RTCWEB-VIDEO] Section 6.2. packetizationMode sequence<unsigned short> Receiver/Sender A sequence of unsigned shorts, each ranging from 0 to 2, indicating supported packetizationMode values. As noted in [RTCWEB-VIDEO] Section 6.2, support for packetization-mode 1 is mandatory. maxMbps, maxSmbps, maxFs, maxCpb, maxDpb, maxBr unsigned long long Receiver As noted in [RTCWEB-VIDEO] Section 6.2, these optional parameters allow the implementation to specify that the decoder can support certain features of H.264 at higher rates and values than those signalled with profile-level-id. 9.7.2 Codec parameters The parameters of common codecs are described below. 9.7.2.1 Opus The following settings are defined for Opus: Property Name Values Receiver/Sender Notes maxPlaybackRate unsigned long Sender A hint about the maximum output sampling rate that the receiver is capable of rendering in Hz. spropMaxCaptureRate unsigned long Receiver A hint about the maximum input sampling rate that the sender is likely to produce. ptime unsigned long Sender The preferred duration of media represented by a packet that a decoder wants to receive in milliseconds. maxAverageBitrate unsigned long Sender Specifies the maximum average receive bitrate of a session in bits per second (bits/s). stereo boolean Sender Specifies whether the decoder prefers receiving stereo (if true) or mono signals (if false). spropStereo boolean Receiver Specifies whether the sender is likely to produce stereo audio (if true) or mono signals (if false). cbr boolean Sender Specifies if the decoder prefers the use of constant bitrate (if true) or variable bitrate (if false). useInbandFec boolean Sender Specifies if the decoder has the capability to take advantage of Opus in-band fec (if true) or not (if false). useDtx boolean Sender Specifies if the decoder prefers the use of DTX (if true) or not (if false). complexity unsigned long Sender Configures the encoder's computational complexity. 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). 9.7.2.2 VP8 The following settings are defined for VP8: Property Name Values Receiver/Sender Notes maxFr unsigned long Sender This parameter indicates the maximum frame rate in frames per second that the decoder is capable of decoding. maxFs unsigned long long Sender This parameter indicates the maximum frame size in macroblocks that the decoder is capable of decoding. 9.7.2.3 H.264 The following settings are defined for H.264: Property Name Values Receiver/Sender Notes profileLevelId unsigned long Sender This parameter, which describes the maximum capability of the decoder, must be supported, as noted in [RTCWEB-VIDEO] Section 6.2. packetizationMode unsigned short Sender An unsigned short ranging from 0 to 2, indicating the packetizationMode value to be used by the sender. This setting must be supported, as noted in [RTCWEB-VIDEO] Section 6.2. maxMbps, maxSmbps, maxFs, maxCpb, maxDpb, maxBr unsigned long long Sender These optional parameters allow the implementation to specify that the decoder can support certain features of H.264 at higher rates and values than those signaled with profile-level-id. 9.7.2.4 RTX The following settings are defined for RTX, as noted in [RFC4588] Section 8.6: Property Name Values Notes rtxTime unsigned long As defined in [RFC4588], the time in milliseconds (measured from the time a packet was first sent) that the sender keeps an RTP packet in its buffers available for retransmission. 9.7.2.5 RED The following settings are defined for RED, as noted in [RFC2198] Section 5: Property Name Values Notes payloadTypes sequence<payloadtype> A sequence of payload types to be encapsulated in RED.
Received on Tuesday, 17 November 2015 21:30:41 UTC