RE: Issue 236 (API for CSRCs and audioLevels)

Another update.  Since the client-mixer extension is mandatory-to-implement in RTP-Usage, it should be available for use in applications, and therefore there is no need to require ORTC implementations to compute audioLevel if it is not present.   Also, the mandatory time to retain CSRC data is set to 60 seconds instead of 10, so as to enable applications to poll less frequently if all they need is a list of recent speakers.
Partial interface RTCRtpReceiver : RTCStatsProvider {
    sequence<RTCRtpContributingSource> getContributingSources ();
};

getContributingSources
Returns an RTCRtpContributingSource object for each unique CSRC or SSRC received by this RTCRtpReceiver. The browser must keep information from RTP packets received in the last 60 seconds.
No parameters.
Return type: sequence<RTCRtpContributingSource>
 6.4 dictionary RTCRtpContributingSource

The RTCRtpContributingSource object contains information about a contributing source. Each time an RTP packet is received, the RTCRtpContributingSource objects are updated. If the RTP packet contains CSRCs, then the RTCRtpContributingSource objects corresponding to those CSRCs are updated, and the level values for those CSRCs are updated based on the mixer-client header extension [RFC6565] if present. If the RTP packet contains no CSRCs, then the RTCRtpContributingSource object corresponding to the SSRC is updated, and the level value for the SSRC is updated based on the client-mixer header extension [RFC6464] if present.

interface RTCRtpContributingSource {

    readonly    attribute DOMHighResTimeStamp timestamp;

    readonly    attribute unsigned long       source;

    readonly    attribute byte?               audioLevel;

};

6.4.1 Attributes
audioLevel of type byte, readonly , nullable

The audio level contained in the last RTP packet received from this source. If the source was set from an SSRC, this will be the level value in [RFC6464]. If the source was set from a CSRC, this will be the level value in [RFC6465]. Both [RFC6464] and [RFC6465] define the level as a integral value from 0 to -127 representing the audio level in decibels relative to the loudest signal that they system could possibly encode.
source of type unsigned long, readonly

The CSRC or SSRC value of the contributing source.
timestamp of type DOMHighResTimeStamp, readonly

The timestamp of type DOMHighResTimeStamp [HIGHRES-TIME], indicating the time of reception of the most recent RTP packet containing the source. The time is relative to the UNIX epoch (Jan 1, 1970, UTC). The timestamp corresponds to the local clock.

Received on Tuesday, 22 September 2015 16:08:12 UTC