- From: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Date: Wed, 19 Nov 2014 22:16:13 +0000
- To: Jiannan Zheng <jzheng@exchange.microsoft.com>, "public-ortc@w3.org" <public-ortc@w3.org>
Here is what RFC 4585 Section 4.2 says:
A new payload format-specific SDP attribute is defined to indicate
the capability of using RTCP feedback as specified in this document:
"a=rtcp-fb". The "rtcp-fb" attribute MUST only be used as an SDP
media attribute and MUST NOT be provided at the session level. The
"rtcp-fb" attribute MUST only be used in media sessions for which the
"AVPF" is specified.
The "rtcp-fb" attribute SHOULD be used to indicate which RTCP FB
messages MAY be used in this media session for the indicated payload
type. A wildcard payload type ("*") MAY be used to indicate that the
RTCP feedback attribute applies to all payload types. If several
types of feedback are supported and/or the same feedback shall be
specified for a subset of the payload types, several "a=rtcp-fb"
lines MUST be used.
The implication here is that a=rtcp-fb lines can be provided for each payload type.
The RTCRtpCodecCapability dictionary provides the information on which codecs
support what feedback mechanisms, along with a preferredPayloadType that enables
the appropriate a=rtcp-fb lines to be constructed in an offer:
dictionary RTCRtpCodecCapability {
DOMString name;
DOMString kind;
unsigned long clockRate;
payloadtype preferredPayloadType;
unsigned long numChannels;
sequence<RTCRtcpFeedback> rtcpFeedback;
Dictionary parameters;
Dictionary options;
unsigned short maxTemporalLayers = 0;
unsigned short maxSpatialLayers = 0;
boolean svcMultiStreamSupport;
};
Similarly, once an answer is received, the RTCRtpCodecParameters dictionary can be used to set the feedback mechanisms to be used for each codec:
dictionary RTCRtpCodecParameters {
DOMString name;
payloadtype payloadType;
unsigned long clockRate;
unsigned long numChannels;
sequence<RTCRtcpFeedback> rtcpFeedback;
Dictionary parameters;
};
An example offer based on draft-burman-mmusic-sdp-simulcast Section 6.3.2 is shown below.
In this example, it is assumed that PLI and NACK are supported by the H.264 codec (used as a base layer
in the example), whereas H.264/SVC supports PLI and NACK, with only NACK being advertised when
H.264/SVC is used as an extension to an H.264 base layer. Also in the example below it is assumed
that the VP8 codec supports NACK, PLI, RPSI and SLI.
v=0
o=fred 238947129 823479223 IN IP4 192.0.2.125
s=Offer from Simulcast Enabled Multi-Source Client
t=0 0
c=IN IP4 192.0.2.125
a=group:BUNDLE foo bar zen
m=audio 49200 RTP/SAVPF 99
a=mid:foo
a=rtpmap:99 G722/8000
m=video 49600 RTP/SAVPF 100 101 102 103
a=mid:bar
a=rtpmap:100 H264-SVC/90000
a=rtpmap:101 H264/90000
a=rtpmap:102 H264/90000
a=rtpmap:103 VP8/90000
a=fmtp:100 profile-level-id=42400d; max-fs=3600; max-mbps=108000; mst-mode=NI-TC
a=fmtp:101 profile-level-id=42c00d; max-fs=3600; max-mbps=54000
a=fmtp:102 profile-level-id=42c00d; max-fs=900; max-mbps=27000
a=fmtp:103 max-fs=900; max-fr=30
a=rtcp-fb:100 nack
a=rtcp-fb:101 nack pli
a=rtcp-fb:102 nack pli
a=rtcp-fb:103 nack pli rpsi sli
a=imageattr:100 send [x=1280,y=720] recv [x=1280,y=720]
a=imageattr:101 send [x=1280,y=720] recv [x=1280,y=720]
a=imageattr:102 send [x=640,y=360] recv [x=640,y=360]
a=imageattr:103 send [x=640,y=360] recv [x=640,y=360]
a=depend:100 lay bar:101
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid
a=simulcast sendrecv 100;101 send 103,102
m=video 49602 RTP/SAVPF 96 103 97 104 105 106
a=mid:zen
a=rtpmap:96 VP8/90000
a=fmtp:96 max-fs=3600; max-fr=30
a=rtcp-fb:96 nack pli rpsi sli
________________________________________
From: Jiannan Zheng [jzheng@exchange.microsoft.com]
Sent: Wednesday, November 19, 2014 12:07 PM
To: public-ortc@w3.org
Subject: payload agnostic rtcp feedback
Hi,
I have a question about how to enable the app built on top of ORTC to be able to generate thing like:
“a = rtcp-fb:* nack pli”
Now it seems the feedback capability is attached to each codec and there is not easy way to specify a global one.
Thanks,
-Jiannan
Received on Wednesday, 19 November 2014 22:16:41 UTC