diff options
Diffstat (limited to 'doc/rfc/rfc5104.txt')
-rw-r--r-- | doc/rfc/rfc5104.txt | 3587 |
1 files changed, 3587 insertions, 0 deletions
diff --git a/doc/rfc/rfc5104.txt b/doc/rfc/rfc5104.txt new file mode 100644 index 0000000..ab35344 --- /dev/null +++ b/doc/rfc/rfc5104.txt @@ -0,0 +1,3587 @@ + + + + + + +Network Working Group S. Wenger +Request for Comments: 5104 U. Chandra +Category: Standards Track Nokia + M. Westerlund + B. Burman + Ericsson + February 2008 + + + Codec Control Messages in the + RTP Audio-Visual Profile with Feedback (AVPF) + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Abstract + + This document specifies a few extensions to the messages defined in + the Audio-Visual Profile with Feedback (AVPF). They are helpful + primarily in conversational multimedia scenarios where centralized + multipoint functionalities are in use. However, some are also usable + in smaller multicast environments and point-to-point calls. + + The extensions discussed are messages related to the ITU-T Rec. H.271 + Video Back Channel, Full Intra Request, Temporary Maximum Media + Stream Bit Rate, and Temporal-Spatial Trade-off. + + + + + + + + + + + + + + + + + + + + +Wenger, et al. Standards Track [Page 1] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +Table of Contents + + 1. Introduction ....................................................4 + 2. Definitions .....................................................5 + 2.1. Glossary ...................................................5 + 2.2. Terminology ................................................5 + 2.3. Topologies .................................................8 + 3. Motivation ......................................................8 + 3.1. Use Cases ..................................................9 + 3.2. Using the Media Path ......................................11 + 3.3. Using AVPF ................................................11 + 3.3.1. Reliability ........................................12 + 3.4. Multicast .................................................12 + 3.5. Feedback Messages .........................................12 + 3.5.1. Full Intra Request Command .........................12 + 3.5.1.1. Reliability ...............................13 + 3.5.2. Temporal-Spatial Trade-off Request and + Notification .......................................14 + 3.5.2.1. Point-to-Point ............................15 + 3.5.2.2. Point-to-Multipoint Using + Multicast or Translators ..................15 + 3.5.2.3. Point-to-Multipoint Using RTP Mixer .......15 + 3.5.2.4. Reliability ...............................16 + 3.5.3. H.271 Video Back Channel Message ...................16 + 3.5.3.1. Reliability ...............................19 + 3.5.4. Temporary Maximum Media Stream Bit Rate + Request and Notification ...........................19 + 3.5.4.1. Behavior for Media Receivers Using TMMBR ..21 + 3.5.4.2. Algorithm for Establishing Current + Limitations ...............................23 + 3.5.4.3. Use of TMMBR in a Mixer-Based + Multipoint Operation ......................29 + 3.5.4.4. Use of TMMBR in Point-to-Multipoint Using + Multicast or Translators ..................30 + 3.5.4.5. Use of TMMBR in Point-to-Point Operation ..31 + 3.5.4.6. Reliability ...............................31 + 4. RTCP Receiver Report Extensions ................................32 + 4.1. Design Principles of the Extension Mechanism ..............32 + 4.2. Transport Layer Feedback Messages .........................33 + 4.2.1. Temporary Maximum Media Stream Bit Rate + Request (TMMBR) ....................................34 + 4.2.1.1. Message Format ............................34 + 4.2.1.2. Semantics .................................35 + 4.2.1.3. Timing Rules ..............................39 + 4.2.1.4. Handling in Translators and Mixers ........39 + 4.2.2. Temporary Maximum Media Stream Bit Rate + Notification (TMMBN) ...............................39 + 4.2.2.1. Message Format ............................39 + + + +Wenger, et al. Standards Track [Page 2] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + 4.2.2.2. Semantics .................................40 + 4.2.2.3. Timing Rules ..............................41 + 4.2.2.4. Handling by Translators and Mixers ........41 + 4.3. Payload-Specific Feedback Messages ........................41 + 4.3.1. Full Intra Request (FIR) ...........................42 + 4.3.1.1. Message Format ............................42 + 4.3.1.2. Semantics .................................43 + 4.3.1.3. Timing Rules ..............................44 + 4.3.1.4. Handling of FIR Message in Mixers and + Translators ...............................44 + 4.3.1.5. Remarks ...................................44 + 4.3.2. Temporal-Spatial Trade-off Request (TSTR) ..........45 + 4.3.2.1. Message Format ............................46 + 4.3.2.2. Semantics .................................46 + 4.3.2.3. Timing Rules ..............................47 + 4.3.2.4. Handling of Message in Mixers and + Translators ...............................47 + 4.3.2.5. Remarks ...................................47 + 4.3.3. Temporal-Spatial Trade-off Notification (TSTN) .....48 + 4.3.3.1. Message Format ............................48 + 4.3.3.2. Semantics .................................49 + 4.3.3.3. Timing Rules ..............................49 + 4.3.3.4. Handling of TSTN in Mixers and + Translators ...............................49 + 4.3.3.5. Remarks ...................................49 + 4.3.4. H.271 Video Back Channel Message (VBCM) ............50 + 4.3.4.1. Message Format ............................50 + 4.3.4.2. Semantics .................................51 + 4.3.4.3. Timing Rules ..............................52 + 4.3.4.4. Handling of Message in Mixers or + Translators ...............................52 + 4.3.4.5. Remarks ...................................52 + 5. Congestion Control .............................................52 + 6. Security Considerations ........................................53 + 7. SDP Definitions ................................................54 + 7.1. Extension of the rtcp-fb Attribute ........................54 + 7.2. Offer-Answer ..............................................55 + 7.3. Examples ..................................................56 + 8. IANA Considerations ............................................58 + 9. Contributors ...................................................60 + 10. Acknowledgements ..............................................60 + 11. References ....................................................60 + 11.1. Normative References .....................................60 + 11.2. Informative References ...................................61 + + + + + + + +Wenger, et al. Standards Track [Page 3] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +1. Introduction + + When the Audio-Visual Profile with Feedback (AVPF) [RFC4585] was + developed, the main emphasis lay in the efficient support of point- + to-point and small multipoint scenarios without centralized + multipoint control. However, in practice, many small multipoint + conferences operate utilizing devices known as Multipoint Control + Units (MCUs). Long-standing experience of the conversational video + conferencing industry suggests that there is a need for a few + additional feedback messages, to support centralized multipoint + conferencing efficiently. Some of the messages have applications + beyond centralized multipoint, and this is indicated in the + description of the message. This is especially true for the message + intended to carry ITU-T Rec. H.271 [H.271] bit strings for Video Back + Channel messages. + + In Real-time Transport Protocol (RTP) [RFC3550] terminology, MCUs + comprise mixers and translators. Most MCUs also include signaling + support. During the development of this memo, it was noticed that + there is considerable confusion in the community related to the use + of terms such as mixer, translator, and MCU. In response to these + concerns, a number of topologies have been identified that are of + practical relevance to the industry, but are not documented in + sufficient detail in [RFC3550]. These topologies are documented in + [RFC5117], and understanding this memo requires previous or parallel + study of [RFC5117]. + + Some of the messages defined here are forward only, in that they do + not require an explicit notification to the message emitter that they + have been received and/or indicating the message receiver's actions. + Other messages require a response, leading to a two-way communication + model that one could view as useful for control purposes. However, + it is not the intention of this memo to open up RTP Control Protocol + (RTCP) to a generalized control protocol. All mentioned messages + have relatively strict real-time constraints, in the sense that their + value diminishes with increased delay. This makes the use of more + traditional control protocol means, such as Session Initiation + Protocol (SIP) [RFC3261], undesirable when used for the same purpose. + That is why this solution is recommended instead of "XML Schema for + Media Control" [XML-MC], which uses SIP Info to transfer XML messages + with similar semantics to what are defined in this memo. + Furthermore, all messages are of a very simple format that can be + easily processed by an RTP/RTCP sender/receiver. Finally, and most + importantly, all messages relate only to the RTP stream with which + they are associated, and not to any other property of a communication + system. In particular, none of them relate to the properties of the + access links traversed by the session. + + + + +Wenger, et al. Standards Track [Page 4] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +2. Definitions + +2.1. Glossary + + AIMD - Additive Increase Multiplicative Decrease + AVPF - The extended RTP profile for RTCP-based feedback + FCI - Feedback Control Information [RFC4585] + FEC - Forward Error Correction + FIR - Full Intra Request + MCU - Multipoint Control Unit + MPEG - Moving Picture Experts Group + PLI - Picture Loss Indication + PR - Packet rate + QP - Quantizer Parameter + RTT - Round trip time + SSRC - Synchronization Source + TMMBN - Temporary Maximum Media Stream Bit Rate Notification + TMMBR - Temporary Maximum Media Stream Bit Rate Request + TSTN - Temporal-Spatial Trade-off Notification + TSTR - Temporal-Spatial Trade-off Request + VBCM - Video Back Channel Message + +2.2. Terminology + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [RFC2119]. + + Message: + An RTCP feedback message [RFC4585] defined by this + specification, of one of the following types: + + Request: + Message that requires acknowledgement + + Command: + Message that forces the receiver to an action + + Indication: + Message that reports a situation + + Notification: + Message that provides a notification that an event has + occurred. Notifications are commonly generated in + response to a Request. + + Note that, with the exception of "Notification", this terminology is + in alignment with ITU-T Rec. H.245 [H245]. + + + +Wenger, et al. Standards Track [Page 5] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Decoder Refresh Point: + A bit string, packetized in one or more RTP packets, that + completely resets the decoder to a known state. + + Examples for "hard" decoder refresh points are Intra pictures + in H.261, H.263, MPEG-1, MPEG-2, and MPEG-4 part 2, and + Instantaneous Decoder Refresh (IDR) pictures in H.264. + "Gradual" decoder refresh points may also be used; see for + example [AVC]. While both "hard" and "gradual" decoder + refresh points are acceptable in the scope of this + specification, in most cases the user experience will benefit + from using a "hard" decoder refresh point. + + A decoder refresh point also contains all header information + above the picture layer (or equivalent, depending on the video + compression standard) that is conveyed in-band. In H.264, for + example, a decoder refresh point contains parameter set + Network Adaptation Layer (NAL) units that generate parameter + sets necessary for the decoding of the following slice/data + partition NAL units (and that are not conveyed out of band). + + Decoding: + The operation of reconstructing the media stream. + + Rendering: + The operation of presenting (parts of) the reconstructed media + stream to the user. + + Stream thinning: + The operation of removing some of the packets from a media + stream. Stream thinning, preferably, is media-aware, implying + that media packets are removed in the order of increasing + relevance to the reproductive quality. However, even when + employing media-aware stream thinning, most media streams + quickly lose quality when subjected to increasing levels of + thinning. Media-unaware stream thinning leads to even worse + quality degradation. In contrast to transcoding, stream + thinning is typically seen as a computationally lightweight + operation. + + Media: + Often used (sometimes in conjunction with terms like bit rate, + stream, sender, etc.) to identify the content of the forward + RTP packet stream (carrying the codec data), to which the + codec control message applies. + + + + + + +Wenger, et al. Standards Track [Page 6] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Media Stream: + The stream of RTP packets labeled with a single + Synchronization Source (SSRC) carrying the media (and also in + some cases repair information such as retransmission or + Forward Error Correction (FEC) information). + + Total media bit rate: + The total bits per second transferred in a media stream, + measured at an observer-selected protocol layer and averaged + over a reasonable timescale, the length of which depends on + the application. In general, a media sender and a media + receiver will observe different total media bit rates for the + same stream, first because they may have selected different + reference protocol layers, and second, because of changes in + per-packet overhead along the transmission path. The goal + with bit rate averaging is to be able to ignore any burstiness + on very short timescales (e.g., below 100 ms) introduced by + scheduling or link layer packetization effects. + + Maximum total media bit rate: + The upper limit on total media bit rate for a given media + stream at a particular receiver and for its selected protocol + layer. Note that this value cannot be measured on the + received media stream. Instead, it needs to be calculated or + determined through other means, such as quality of service + (QoS) negotiations or local resource limitations. Also note + that this value is an average (on a timescale that is + reasonable for the application) and that it may be different + from the instantaneous bit rate seen by packets in the media + stream. + + Overhead: + All protocol header information required to convey a packet + with media data from sender to receiver, from the application + layer down to a pre-defined protocol level (for example, down + to, and including, the IP header). Overhead may include, for + example, IP, UDP, and RTP headers, any layer 2 headers, any + Contributing Sources (CSRCs), RTP padding, and RTP header + extensions. Overhead excludes any RTP payload headers and the + payload itself. + + Net media bit rate: + The bit rate carried by a media stream, net of overhead. That + is, the bits per second accounted for by encoded media, any + applicable payload headers, and any directly associated meta + payload information placed in the RTP packet. A typical + example of the latter is redundancy data provided by the use + of RFC 2198 [RFC2198]. Note that, unlike the total media bit + + + +Wenger, et al. Standards Track [Page 7] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + rate, the net media bit rate will have the same value at the + media sender and at the media receiver unless any mixing or + translating of the media has occurred. + + For a given observer, the total media bit rate for a media + stream is equal to the sum of the net media bit rate and the + per-packet overhead as defined above multiplied by the packet + rate. + + Feasible region: + The set of all combinations of packet rate and net media bit + rate that do not exceed the restrictions in maximum media bit + rate placed on a given media sender by the Temporary Maximum + Media Stream Bit Rate Request (TMMBR) messages it has + received. The feasible region will change as new TMMBR + messages are received. + + Bounding set: + The set of TMMBR tuples, selected from all those received at a + given media sender, that define the feasible region for that + media sender. The media sender uses an algorithm such as that + in section 3.5.4.2 to determine or iteratively approximate the + current bounding set, and reports that set back to the media + receivers in a Temporary Maximum Media Stream Bit Rate + Notification (TMMBN) message. + +2.3. Topologies + + Please refer to [RFC5117] for an in-depth discussion. The topologies + referred to throughout this memo are labeled (consistently with + [RFC5117]) as follows: + + Topo-Point-to-Point . . . . . Point-to-point communication + Topo-Multicast . . . . . . . Multicast communication + Topo-Translator . . . . . . . Translator based + Topo-Mixer . . . . . . . . . Mixer based + Topo-RTP-switch-MCU . . . . . RTP stream switching MCU + Topo-RTCP-terminating-MCU . . Mixer but terminating RTCP + +3. Motivation + + This section discusses the motivation and usage of the different + video and media control messages. The video control messages have + been under discussion for a long time, and a requirement document was + drawn up [Basso]. That document has expired; however, we quote + relevant sections of it to provide motivation and requirements. + + + + + +Wenger, et al. Standards Track [Page 8] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +3.1. Use Cases + + There are a number of possible usages for the proposed feedback + messages. Let us begin by looking through the use cases Basso et al. + [Basso] proposed. Some of the use cases have been reformulated and + comments have been added. + + 1. An RTP video mixer composes multiple encoded video sources into a + single encoded video stream. Each time a video source is added, + the RTP mixer needs to request a decoder refresh point from the + video source, so as to start an uncorrupted prediction chain on + the spatial area of the mixed picture occupied by the data from + the new video source. + + 2. An RTP video mixer receives multiple encoded RTP video streams + from conference participants, and dynamically selects one of the + streams to be included in its output RTP stream. At the time of a + bit stream change (determined through means such as voice + activation or the user interface), the mixer requests a decoder + refresh point from the remote source, in order to avoid using + unrelated content as reference data for inter picture prediction. + After requesting the decoder refresh point, the video mixer stops + the delivery of the current RTP stream and monitors the RTP stream + from the new source until it detects data belonging to the decoder + refresh point. At that time, the RTP mixer starts forwarding the + newly selected stream to the receiver(s). + + 3. An application needs to signal to the remote encoder that the + desired trade-off between temporal and spatial resolution has + changed. For example, one user may prefer a higher frame rate and + a lower spatial quality, and another user may prefer the opposite. + This choice is also highly content dependent. Many current video + conferencing systems offer in the user interface a mechanism to + make this selection, usually in the form of a slider. The + mechanism is helpful in point-to-point, centralized multipoint and + non-centralized multipoint uses. + + 4. Use case 4 of the Basso document applies only to Picture Loss + Indication (PLI) as defined in AVPF [RFC4585] and is not + reproduced here. + + 5. Use case 5 of the Basso document relates to a mechanism known as + "freeze picture request". Sending freeze picture requests over a + non-reliable forward RTCP channel has been identified as + problematic. Therefore, no freeze picture request has been + included in this memo, and the use case discussion is not + reproduced here. + + + + +Wenger, et al. Standards Track [Page 9] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + 6. A video mixer dynamically selects one of the received video + streams to be sent out to participants and tries to provide the + highest bit rate possible to all participants, while minimizing + stream trans-rating. One way of achieving this is to set up + sessions with endpoints using the maximum bit rate accepted by + each endpoint, and accepted by the call admission method used by + the mixer. By means of commands that reduce the maximum media + stream bit rate below what has been negotiated during session set + up, the mixer can reduce the maximum bit rate sent by endpoints to + the lowest of all the accepted bit rates. As the lowest accepted + bit rate changes due to endpoints joining and leaving or due to + network congestion, the mixer can adjust the limits at which + endpoints can send their streams to match the new value. The + mixer then requests a new maximum bit rate, which is equal to or + less than the maximum bit rate negotiated at session setup for a + specific media stream, and the remote endpoint can respond with + the actual bit rate that it can support. + + The picture Basso, et al., draw up covers most applications we + foresee. However, we would like to extend the list with two + additional use cases: + + 7. Currently deployed congestion control algorithms (AIMD and TCP + Friendly Rate Control (TFRC) [RFC3448]) probe for additional + available capacity as long as there is something to send. With + congestion control algorithms using packet loss as the indication + for congestion, this probing generally results in reduced media + quality (often to a point where the distortion is large enough to + make the media unusable), due to packet loss and increased delay. + + In a number of deployment scenarios, especially cellular ones, the + bottleneck link is often the last hop link. That cellular link + also commonly has some type of QoS negotiation enabling the + cellular device to learn the maximal bit rate available over this + last hop. A media receiver behind this link can, in most (if not + all) cases, calculate at least an upper bound for the bit rate + available for each media stream it presently receives. How this + is done is an implementation detail and not discussed herein. + Indicating the maximum available bit rate to the transmitting + party for the various media streams can be beneficial to prevent + that party from probing for bandwidth for this stream in excess of + a known hard limit. For cellular or other mobile devices, the + known available bit rate for each stream (deduced from the link + bit rate) can change quickly, due to handover to another + transmission technology, QoS renegotiation due to congestion, etc. + To enable minimal disruption of service, quick convergence is + necessary, and therefore media path signaling is desirable. + + + + +Wenger, et al. Standards Track [Page 10] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + 8. The use of reference picture selection (RPS) as an error + resilience tool was introduced in 1997 as NEWPRED [NEWPRED], and + is now widely deployed. When RPS is in use, simplistically put, + the receiver can send a feedback message to the sender, + indicating a reference picture that should be used for future + prediction. ([NEWPRED] mentions other forms of feedback as + well.) AVPF contains a mechanism for conveying such a message, + but did not specify for which codec and according to which syntax + the message should conform. Recently, the ITU-T finalized Rec. + H.271, which (among other message types) also includes a feedback + message. It is expected that this feedback message will fairly + quickly enjoy wide support. Therefore, a mechanism to convey + feedback messages according to H.271 appears to be desirable. + +3.2. Using the Media Path + + There are two reasons why we use the media path for the codec control + messages. + + First, systems employing MCUs often separate the control and media + processing parts. As these messages are intended for or generated by + the media part rather than the signaling part of the MCU, having them + on the media path avoids transmission across interfaces and + unnecessary control traffic between signaling and processing. If the + MCU is physically decomposed, the use of the media path avoids the + need for media control protocol extensions (e.g., in media gateway + control (MEGACO) [RFC3525]). + + Secondly, the signaling path quite commonly contains several + signaling entities, e.g., SIP proxies and application servers. + Avoiding going through signaling entities avoids delay for several + reasons. Proxies have less stringent delay requirements than media + processing, and due to their complex and more generic nature may + result in significant processing delay. The topological locations of + the signaling entities are also commonly not optimized for minimal + delay, but rather towards other architectural goals. Thus, the + signaling path can be significantly longer in both geographical and + delay sense. + +3.3. Using AVPF + + The AVPF feedback message framework [RFC4585] provides the + appropriate framework to implement the new messages. AVPF implements + rules controlling the timing of feedback messages to avoid congestion + through network flooding by RTCP traffic. We re-use these rules by + referencing AVPF. + + + + + +Wenger, et al. Standards Track [Page 11] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + The signaling setup for AVPF allows each individual type of function + to be configured or negotiated on an RTP session basis. + +3.3.1. Reliability + + The use of RTCP messages implies that each message transfer is + unreliable, unless the lower layer transport provides reliability. + The different messages proposed in this specification have different + requirements in terms of reliability. However, in all cases, the + reaction to an (occasional) loss of a feedback message is specified. + +3.4. Multicast + + The codec control messages might be used with multicast. The RTCP + timing rules specified in [RFC3550] and [RFC4585] ensure that the + messages do not cause overload of the RTCP connection. The use of + multicast may result in the reception of messages with inconsistent + semantics. The reaction to inconsistencies depends on the message + type, and is discussed for each message type separately. + +3.5. Feedback Messages + + This section describes the semantics of the different feedback + messages and how they apply to the different use cases. + +3.5.1. Full Intra Request Command + + A Full Intra Request (FIR) Command, when received by the designated + media sender, requires that the media sender sends a Decoder Refresh + Point (see section 2.2) at the earliest opportunity. The evaluation + of such an opportunity includes the current encoder coding strategy + and the current available network resources. + + FIR is also known as an "instantaneous decoder refresh request", + "fast video update request" or "video fast update request". + + Using a decoder refresh point implies refraining from using any + picture sent prior to that point as a reference for the encoding + process of any subsequent picture sent in the stream. For predictive + media types that are not video, the analogue applies. For example, + if in MPEG-4 systems scene updates are used, the decoder refresh + point consists of the full representation of the scene and is not + delta-coded relative to previous updates. + + + + + + + + +Wenger, et al. Standards Track [Page 12] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Decoder refresh points, especially Intra or IDR pictures, are in + general several times larger in size than predicted pictures. Thus, + in scenarios in which the available bit rate is small, the use of a + decoder refresh point implies a delay that is significantly longer + than the typical picture duration. + + Usage in multicast is possible; however, aggregation of the commands + is recommended. A receiver that receives a request closely after + sending a decoder refresh point -- within 2 times the longest round + trip time (RTT) known, plus any AVPF-induced RTCP packet sending + delays -- should await a second request message to ensure that the + media receiver has not been served by the previously delivered + decoder refresh point. The reason for the specified delay is to + avoid sending unnecessary decoder refresh points. A session + participant may have sent its own request while another participant's + request was in-flight to them. Suppressing those requests that may + have been sent without knowledge about the other request avoids this + issue. + + Using the FIR command to recover from errors is explicitly + disallowed, and instead the PLI message defined in AVPF [RFC4585] + should be used. The PLI message reports lost pictures and has been + included in AVPF for precisely that purpose. + + Full Intra Request is applicable in use-cases 1 and 2. + +3.5.1.1. Reliability + + The FIR message results in the delivery of a decoder refresh point, + unless the message is lost. Decoder refresh points are easily + identifiable from the bit stream. Therefore, there is no need for + protocol-level notification, and a simple command repetition + mechanism is sufficient for ensuring the level of reliability + required. However, the potential use of repetition does require a + mechanism to prevent the recipient from responding to messages + already received and responded to. + + To ensure the best possible reliability, a sender of FIR may repeat + the FIR until the desired content has been received. The repetition + interval is determined by the RTCP timing rules applicable to the + session. Upon reception of a complete decoder refresh point or the + detection of an attempt to send a decoder refresh point (which got + damaged due to a packet loss), the repetition of the FIR must stop. + If another FIR is necessary, the request sequence number must be + increased. A FIR sender shall not have more than one FIR (different + request sequence number) outstanding at any time per media sender in + the session. + + + + +Wenger, et al. Standards Track [Page 13] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + The receiver of FIR (i.e., the media sender) behaves in complementary + fashion to ensure delivery of a decoder refresh point. If it + receives repetitions of the FIR more than 2*RTT after it has sent a + decoder refresh point, it shall send a new decoder refresh point. + Two round trip times allow time for the decoder refresh point to + arrive back to the requestor and for the end of repetitions of FIR to + reach and be detected by the media sender. + + An RTP mixer or RTP switching MCU that receive a FIR from a media + receiver is responsible to ensure that a decoder refresh point is + delivered to the requesting receiver. It may be necessary for the + mixer/MCU to generate FIR commands. From a reliability perspective, + the two legs (FIR-requesting endpoint to mixer/MCU, and mixer/MCU to + decoder refresh point generating endpoint) are handled independently + from each other. + +3.5.2. Temporal-Spatial Trade-off Request and Notification + + The Temporal-Spatial Trade-off Request (TSTR) instructs the video + encoder to change its trade-off between temporal and spatial + resolution. Index values from 0 to 31 indicate monotonically a + desire for higher frame rate. That is, a requester asking for an + index of 0 prefers a high quality and is willing to accept a low + frame rate, whereas a requester asking for 31 wishes a high frame + rate, potentially at the cost of low spatial quality. + + In general, the encoder reaction time may be significantly longer + than the typical picture duration. See use case 3 for an example. + The encoder decides whether and to what extent the request results in + a change of the trade-off. It returns a Temporal-Spatial Trade-off + Notification (TSTN) message to indicate the trade-off that it will + use henceforth. + + TSTR and TSTN have been introduced primarily because it is believed + that control protocol mechanisms, e.g., a SIP re-invite, are too + heavyweight and too slow to allow for a reasonable user experience. + Consider, for example, a user interface where the remote user selects + the temporal/spatial trade-off with a slider. An immediate feedback + to any slider movement is required for a reasonable user experience. + A SIP re-INVITE [RFC3261] would require at least two round-trips more + (compared to the TSTR/TSTN mechanism) and may involve proxies and + other complex mechanisms. Even in a well-designed system, it could + take a second or so until the new trade-off is finally selected. + Furthermore, the use of RTCP solves the multicast use case very + efficiently. + + The use of TSTR and TSTN in multipoint scenarios is a non-trivial + subject, and can be achieved in many implementation-specific ways. + + + +Wenger, et al. Standards Track [Page 14] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Problems stem from the fact that TSTRs will typically arrive + unsynchronized, and may request different trade-off values for the + same stream and/or endpoint encoder. This memo does not specify a + translator's, mixer's, or endpoint's reaction to the reception of a + suggested trade-off as conveyed in the TSTR. We only require the + receiver of a TSTR message to reply to it by sending a TSTN, carrying + the new trade-off chosen by its own criteria (which may or may not be + based on the trade-off conveyed by the TSTR). In other words, the + trade-off sent in a TSTR is a non-binding recommendation, nothing + more. + + Three TSTR/TSTN scenarios need to be distinguished, based on the + topologies described in [RFC5117]. The scenarios are described in + the following subsections. + +3.5.2.1. Point-to-Point + + In this most trivial case (Topo-Point-to-Point), the media sender + typically adjusts its temporal/spatial trade-off based on the + requested value in TSTR, subject to its own capabilities. The TSTN + message conveys back the new trade-off value (which may be identical + to the old one if, for example, the sender is not capable of + adjusting its trade-off). + +3.5.2.2. Point-to-Multipoint Using Multicast or Translators + + RTCP Multicast is used either with media multicast according to + Topo-Multicast, or following RFC 3550's translator model according to + Topo-Translator. In these cases, unsynchronized TSTR messages from + different receivers may be received, possibly with different + requested trade-offs (because of different user preferences). This + memo does not specify how the media sender tunes its trade-off. + Possible strategies include selecting the mean or median of all + trade-off requests received, giving priority to certain participants, + or continuing to use the previously selected trade-off (e.g., when + the sender is not capable of adjusting it). Again, all TSTR messages + need to be acknowledged by TSTN, and the value conveyed back has to + reflect the decision made. + +3.5.2.3. Point-to-Multipoint Using RTP Mixer + + In this scenario (Topo-Mixer), the RTP mixer receives all TSTR + messages, and has the opportunity to act on them based on its own + criteria. In most cases, the mixer should form a "consensus" of + potentially conflicting TSTR messages arriving from different + participants, and initiate its own TSTR message(s) to the media + sender(s). As in the previous scenario, the strategy for forming + + + + +Wenger, et al. Standards Track [Page 15] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + this "consensus" is up to the implementation, and can, for example, + encompass averaging the participants' request values, giving priority + to certain participants, or using session default values. + + Even if a mixer or translator performs transcoding, it is very + difficult to deliver media with the requested trade-off, unless the + content the mixer or translator receives is already close to that + trade-off. Thus, if the mixer changes its trade-off, it needs to + request the media sender(s) to use the new value, by creating a TSTR + of its own. Upon reaching a decision on the used trade-off, it + includes that value in the acknowledgement to the downstream + requestors. Only in cases where the original source has + substantially higher quality (and bit rate) is it likely that + transcoding alone can result in the requested trade-off. + +3.5.2.4. Reliability + + A request and reception acknowledgement mechanism is specified. The + Temporal-Spatial Trade-off Notification (TSTN) message informs the + requester that its request has been received, and what trade-off is + used henceforth. This acknowledgement mechanism is desirable for at + least the following reasons: + + o A change in the trade-off cannot be directly identified from the + media bit stream. + o User feedback cannot be implemented without knowing the chosen + trade-off value, according to the media sender's constraints. + o Repetitive sending of messages requesting an unimplementable + trade-off can be avoided. + +3.5.3. H.271 Video Back Channel Message + + ITU-T Rec. H.271 defines syntax, semantics, and suggested encoder + reaction to a Video Back Channel Message. The structure defined in + this memo is used to transparently convey such a message from media + receiver to media sender. In this memo, we refrain from an in-depth + discussion of the available code points within H.271 and refer to the + specification text [H.271] instead. + + However, we note that some H.271 messages bear similarities with + native messages of AVPF and this memo. Furthermore, we note that + some H.271 message are known to require caution in multicast + environments -- or are plainly not usable in multicast or multipoint + scenarios. Table 1 provides a brief, simplified overview of the + messages currently defined in H.271, their roughly corresponding AVPF + or Codec Control Messages (CCMs) (the latter as specified in this + memo), and an indication of our current knowledge of their multicast + safety. + + + +Wenger, et al. Standards Track [Page 16] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + H.271 msg type AVPF/CCM msg type multicast-safe + -------------------------------------------------------------------- + 0 (when used for + reference picture + selection) AVPF RPSI No (positive ACK of pictures) + 1 picture loss AVPF PLI Yes + 2 partial loss AVPF SLI Yes + 3 one parameter CRC N/A Yes (no required sender action) + 4 all parameter CRC N/A Yes (no required sender action) + 5 refresh point CCM FIR Yes + + Table 1: H.271 messages and their AVPF/CCM equivalents + + Note: H.271 message type 0 is not a strict equivalent to + AVPF's Reference Picture Selection Indication (RPSI); it is an + indication of known-as-correct reference picture(s) at the + decoder. It does not command an encoder to use a defined + reference picture (the form of control information envisioned + to be carried in RPSI). However, it is believed and intended + that H.271 message type 0 will be used for the same purpose as + AVPF's RPSI -- although other use forms are also possible. + + In response to the opaqueness of the H.271 messages, especially with + respect to the multicast safety, the following guidelines MUST be + followed when an implementation wishes to employ the H.271 video back + channel message: + + 1. Implementations utilizing the H.271 feedback message MUST stay in + compliance with congestion control principles, as outlined in + section 5. + + 2. An implementation SHOULD utilize the IETF-native messages as + defined in [RFC4585] and in this memo instead of similar messages + defined in [H.271]. Our current understanding of similar messages + is documented in Table 1 above. One good reason to divert from + the SHOULD statement above would be if it is clearly understood + that, for a given application and video compression standard, the + aforementioned "similarity" is not given, in contrast to what the + table indicates. + + 3. It has been observed that some of the H.271 code points currently + in existence are not multicast-safe. Therefore, the sensible + thing to do is not to use the H.271 feedback message type in + multicast environments. It MAY be used only when all the issues + mentioned later are fully understood by the implementer, and + properly taken into account by all endpoints. In all other cases, + the H.271 message type MUST NOT be used in conjunction with + multicast. + + + +Wenger, et al. Standards Track [Page 17] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + 4. It has been observed that even in centralized multipoint + environments, where the mixer should theoretically be able to + resolve issues as documented below, the implementation of such a + mixer and cooperative endpoints is a very difficult and tedious + task. Therefore, H.271 messages MUST NOT be used in centralized + multipoint scenarios, unless all the issues mentioned below are + fully understood by the implementer, and properly taken into + account by both mixer and endpoints. + + Issues to be taken into account when considering the use of H.271 in + multipoint environments: + + 1. Different state on different receivers. In many environments, it + cannot be guaranteed that the decoder state of all media receivers + is identical at any given point in time. The most obvious reason + for such a possible misalignment of state is a loss that occurs on + the path to only one of many media receivers. However, there are + other not so obvious reasons, such as recent joins to the + multipoint conference (be it by joining the multicast group or + through additional mixer output). Different states can lead the + media receivers to issue potentially contradicting H.271 messages + (or one media receiver issuing an H.271 message that, when + observed by the media sender, is not helpful for the other media + receivers). A naive reaction of the media sender to these + contradicting messages can lead to unpredictable and annoying + results. + + 2. Combining messages from different media receivers in a media + sender is a non-trivial task. As reasons, we note that these + messages may be contradicting each other, and that their transport + is unreliable (there may well be other reasons). In case of many + H.271 messages (i.e., types 0, 2, 3, and 4), the algorithm for + combining must be aware both of the network/protocol environment + (i.e., with respect to congestion) and of the media codec + employed, as H.271 messages of a given type can have different + semantics for different media codecs. + + 3. The suppression of requests may need to go beyond the basic + mechanisms described in AVPF (which are driven exclusively by + timing and transport considerations on the protocol level). For + example, a receiver is often required to refrain from (or delay) + generating requests, based on information it receives from the + media stream. For instance, it makes no sense for a receiver to + issue a FIR when a transmission of an Intra/IDR picture is + ongoing. + + + + + + +Wenger, et al. Standards Track [Page 18] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + 4. When using the non-multicast-safe messages (e.g., H.271 type 0 + positive ACK of received pictures/slices) in larger multicast + groups, the media receiver will likely be forced to delay or even + omit sending these messages. For the media sender, this looks + like data has not been properly received (although it was received + properly), and a naively implemented media sender reacts to these + perceived problems where it should not. + +3.5.3.1. Reliability + + H.271 Video Back Channel Messages do not require reliable + transmission, and confirmation of the reception of a message can be + derived from the forward video bit stream. Therefore, no specific + reception acknowledgement is specified. + + With respect to re-sending rules, section 3.5.1.1 applies. + +3.5.4. Temporary Maximum Media Stream Bit Rate Request and Notification + + A receiver, translator, or mixer uses the Temporary Maximum Media + Stream Bit Rate Request (TMMBR, "timber") to request a sender to + limit the maximum bit rate for a media stream (see section 2.2) to, + or below, the provided value. The Temporary Maximum Media Stream Bit + Rate Notification (TMMBN) contains the media sender's current view of + the most limiting subset of the TMMBR-defined limits it has received, + to help the participants to suppress TMMBRs that would not further + restrict the media sender. The primary usage for the TMMBR/TMMBN + messages is in a scenario with an MCU or mixer (use case 6), + corresponding to Topo-Translator or Topo-Mixer, but also to Topo- + Point-to-Point. + + Each temporary limitation on the media stream is expressed as a + tuple. The first component of the tuple is the maximum total media + bit rate (as defined in section 2.2) that the media receiver is + currently prepared to accept for this media stream. The second + component is the per-packet overhead that the media receiver has + observed for this media stream at its chosen reference protocol + layer. + + As indicated in section 2.2, the overhead as observed by the sender + of the TMMBR (i.e., the media receiver) may differ from the overhead + observed at the receiver of the TMMBR (i.e., the media sender) due to + use of a different reference protocol layer at the other end or due + to the intervention of translators or mixers that affect the amount + of per packet overhead. For example, a gateway in between the two + that converts between IPv4 and IPv6 affects the per-packet overhead + by 20 bytes. Other mechanisms that change the overhead include + tunnels. The problem with varying overhead is also discussed in + + + +Wenger, et al. Standards Track [Page 19] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + [RFC3890]. As will be seen in the description of the algorithm for + use of TMMBR, the difference in perceived overhead between the + sending and receiving ends presents no difficulty because + calculations are carried out in terms of variables that have the same + value at the sender as at the receiver -- for example, packet rate + and net media rate. + + Reporting both maximum total media bit rate and per-packet overhead + allows different receivers to provide bit rate and overhead values + for different protocol layers, for example, at the IP level, at the + outer part of a tunnel protocol, or at the link layer. The protocol + level a peer reports on depends on the level of integration the peer + has, as it needs to be able to extract the information from that + protocol level. For example, an application with no knowledge of the + IP version it is running over cannot meaningfully determine the + overhead of the IP header, and hence will not want to include IP + overhead in the overhead or maximum total media bit rate calculation. + + It is expected that most peers will be able to report values at least + for the IP layer. In certain implementations, it may be advantageous + to also include information pertaining to the link layer, which in + turn allows for a more precise overhead calculation and a better + optimization of connectivity resources. + + The Temporary Maximum Media Stream Bit Rate messages are generic + messages that can be applied to any RTP packet stream. This + separates them from the other codec control messages defined in this + specification, which apply only to specific media types or payload + formats. The TMMBR functionality applies to the transport, and the + requirements the transport places on the media encoding. + + The reasoning below assumes that the participants have negotiated a + session maximum bit rate, using a signaling protocol. This value can + be global, for example, in case of point-to-point, multicast, or + translators. It may also be local between the participant and the + peer or mixer. In either case, the bit rate negotiated in signaling + is the one that the participant guarantees to be able to handle + (depacketize and decode). In practice, the connectivity of the + participant also influences the negotiated value -- it does not make + much sense to negotiate a total media bit rate that one's network + interface does not support. + + It is also beneficial to have negotiated a maximum packet rate for + the session or sender. RFC 3890 provides an SDP [RFC4566] attribute + that can be used for this purpose; however, that attribute is not + usable in RTP sessions established using offer/answer [RFC3264]. + Therefore, an optional maximum packet rate signaling parameter is + specified in this memo. + + + +Wenger, et al. Standards Track [Page 20] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + An already established maximum total media bit rate may be changed at + any time, subject to the timing rules governing the sending of + feedback messages. The limit may change to any value between zero + and the session maximum, as negotiated during session establishment + signaling. However, even if a sender has received a TMMBR message + allowing an increase in the bit rate, all increases must be governed + by a congestion control mechanism. TMMBR indicates known limitations + only, usually in the local environment, and does not provide any + guarantees about the full path. Furthermore, any increases in + TMMBR-established bit rate limits are to be executed only after a + certain delay from the sending of the TMMBN message that notifies the + world about the increase in limit. The delay is specified as at + least twice the longest RTT as known by the media sender, plus the + media sender's calculation of the required wait time for the sending + of another TMMBR message for this session based on AVPF timing rules. + This delay is introduced to allow other session participants to make + known their bit rate limit requirements, which may be lower. + + If it is likely that the new value indicated by TMMBR will be valid + for the remainder of the session, the TMMBR sender is expected to + perform a renegotiation of the session upper limit using the session + signaling protocol. + +3.5.4.1. Behavior for Media Receivers Using TMMBR + + This section is an informal description of behaviour described more + precisely in section 4.2. + + A media sender begins the session limited by the maximum media bit + rate and maximum packet rate negotiated in session signaling, if any. + Note that this value may be negotiated for another protocol layer + than the one the participant uses in its TMMBR messages. Each media + receiver selects a reference protocol layer, forms an estimate of the + overhead it is observing (or estimating it if no packets has been + seen yet) at that reference level, and determines the maximum total + media bit rate it can accept, taking into account its own limitations + and any transport path limitations of which it may be aware. In case + the current limitations are more restricting than what was agreed on + in the session signaling, the media receiver reports its initial + estimate of these two quantities to the media sender using a TMMBR + message. Overall message traffic is reduced by the possibility of + including tuples for multiple media senders in the same TMMBR + message. + + The media sender applies an algorithm such as that specified in + section 3.5.4.2 to select which of the tuples it has received are + most limiting (i.e., the bounding set as defined in section 2.2). It + modifies its operation to stay within the feasible region (as defined + + + +Wenger, et al. Standards Track [Page 21] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + in section 2.2), and also sends out a TMMBN to the media receivers + indicating the selected bounding set. That notification also + indicates who was responsible for the tuples in the bounding set, + i.e., the "owner"(s) of the limitation. A session participant that + owns no tuple in the bounding set is called a "non-owner". + + If a media receiver does not own one of the tuples in the bounding + set reported by the TMMBN, it applies the same algorithm as the media + sender to determine if its current estimated (maximum total media bit + rate, overhead) tuple would enter the bounding set if known to the + media sender. If so, it issues a TMMBR reporting the tuple value to + the sender. Otherwise, it takes no action for the moment. + Periodically, its estimated tuple values may change or it may receive + a new TMMBN. If so, it reapplies the algorithm to decide whether it + needs to issue a TMMBR. + + If, alternatively, a media receiver owns one of the tuples in the + reported bounding set, it takes no action until such time as its + estimate of its own tuple values changes. At that time, it sends a + TMMBR to the media sender to report the changed values. + + A media receiver may change status between owner and non-owner of a + bounding tuple between one TMMBN message and the next. Thus, it must + check the contents of each TMMBN to determine its subsequent actions. + + Implementations may use other algorithms of their choosing, as long + as the bit rate limitations resulting from the exchange of TMMBR and + TMMBN messages are at least as strict (at least as low, in the bit + rate dimension) as the ones resulting from the use of the + aforementioned algorithm. + + Obviously, in point-to-point cases, when there is only one media + receiver, this receiver becomes "owner" once it receives the first + TMMBN in response to its own TMMBR, and stays "owner" for the rest of + the session. Therefore, when it is known that there will always be + only a single media receiver, the above algorithm is not required. + Media receivers that are aware they are the only ones in a session + can send TMMBR messages with bit rate limits both higher and lower + than the previously notified limit, at any time (subject to the AVPF + [RFC4585] RTCP RR send timing rules). However, it may be difficult + for a session participant to determine if it is the only receiver in + the session. Because of this, any implementation of TMMBR is + required to include the algorithm described in the next section or a + stricter equivalent. + + + + + + + +Wenger, et al. Standards Track [Page 22] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +3.5.4.2. Algorithm for Establishing Current Limitations + + This section introduces an example algorithm for the calculation of a + session limit. Other algorithms can be employed, as long as the + result of the calculation is at least as restrictive as the result + that is obtained by this algorithm. + + First, it is important to consider the implications of using a tuple + for limiting the media sender's behavior. The bit rate and the + overhead value result in a two-dimensional solution space for the + calculation of the bit rate of media streams. Fortunately, the two + variables are linked. Specifically, the bit rate available for RTP + payloads is equal to the TMMBR reported bit rate minus the packet + rate used, multiplied by the TMMBR reported overhead converted to + bits. As a result, when different bit rate/overhead combinations + need to be considered, the packet rate determines the correct + limitation. This is perhaps best explained by an example: + + Example: + + Receiver A: TMMBR_max total BR = 35 kbps, TMMBR_OH = 40 bytes + Receiver B: TMMBR_max total BR = 40 kbps, TMMBR_OH = 60 bytes + + For a given packet rate (PR), the bit rate available for media + payloads in RTP will be: + + Max_net media_BR_A = + TMMBR_max total BR_A - PR * TMMBR_OH_A * 8 ... (1) + + Max_net media_BR_B = + TMMBR_max total BR_B - PR * TMMBR_OH_B * 8 ... (2) + + For a PR = 20, these calculations will yield a Max_net media_BR_A = + 28600 bps and Max_net media_BR_B = 30400 bps, which suggests that + receiver A is the limiting one for this packet rate. However, at a + certain PR there is a switchover point at which receiver B becomes + the limiting one. The switchover point can be identified by setting + Max_media_BR_A equal to Max_media_BR_B and breaking out PR: + + TMMBR_max total BR_A - TMMBR_max total BR_B + PR = ------------------------------------------- ... (3) + 8*(TMMBR_OH_A - TMMBR_OH_B) + + which, for the numbers above, yields 31.25 as the switchover point + between the two limits. That is, for packet rates below 31.25 per + second, receiver A is the limiting receiver, and for higher packet + rates, receiver B is more limiting. The implications of this + behavior have to be considered by implementations that are going to + + + +Wenger, et al. Standards Track [Page 23] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + control media encoding and its packetization. As exemplified above, + multiple TMMBR limits may apply to the trade-off between net media + bit rate and packet rate. Which limitation applies depends on the + packet rate being considered. + + This also has implications for how the TMMBR mechanism needs to work. + First, there is the possibility that multiple TMMBR tuples are + providing limitations on the media sender. Secondly, there is a need + for any session participant (media sender and receivers) to be able + to determine if a given tuple will become a limitation upon the media + sender, or if the set of already given limitations is stricter than + the given values. In the absence of the ability to make this + determination, the suppression of TMMBRs would not work. + + The basic idea of the algorithm is as follows. Each TMMBR tuple can + be viewed as the equation of a straight line (cf. equations (1) and + (2)) in a space where packet rate lies along the X-axis and net bit + rate along the Y-axis. The lower envelope of the set of lines + corresponding to the complete set of TMMBR tuples, together with the + X and Y axes, defines a polygon. Points lying within this polygon + are combinations of packet rate and bit rate that meet all of the + TMMBR constraints. The highest feasible packet rate within this + region is the minimum of the rate at which the bounding polygon meets + the X-axis or the session maximum packet rate (SMAXPR, measured in + packets per second) provided by signaling, if any. Typically, a + media sender will prefer to operate at a lower rate than this + theoretical maximum, so as to increase the rate at which actual media + content reaches the receivers. The purpose of the algorithm is to + distinguish the TMMBR tuples constituting the bounding set and thus + delineate the feasible region, so that the media sender can select + its preferred operating point within that region + + Figure 1 below shows a bounding polygon formed by TMMBR tuples A and + B. A third tuple C lies outside the bounding polygon and is + therefore irrelevant in determining feasible trade-offs between media + rate and packet rate. The line labeled ss..s represents the limit on + packet rate imposed by the session maximum packet rate (SMAXPR) + obtained by signaling during session setup. In Figure 1, the limit + determined by tuple B happens to be more restrictive than SMAXPR. + The situation could easily be the reverse, meaning that the bounding + polygon is terminated on the right by the vertical line representing + the SMAXPR constraint. + + + + + + + + + +Wenger, et al. Standards Track [Page 24] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Net ^ + Media|a c b s + Bit | a c b s + Rate | a c b s + | a cb s + | a c s + | a bc s + | a b c s + | ab c s + | Feasible b c s + | region ba s + | b a s c + | b s c + | b s a + | bs + +------------------------------> + + Packet rate + + Figure 1 - Geometric Interpretation of TMMBR Tuples + + Note that the slopes of the lines making up the bounding polygon are + increasingly negative as one moves in the direction of increasing + packet rate. Note also that with slight rearrangement, equations (1) + and (2) have the canonical form: + + y = mx + b + + where + m is the slope and has value equal to the negative of the tuple + overhead (in bits), + and + b is the y-intercept and has value equal to the tuple maximum + total media bit rate. + + These observations lead to the conclusion that when processing the + TMMBR tuples to select the initial bounding set, one should sort and + process the tuples by order of increasing overhead. Once a + particular tuple has been added to the bounding set, all tuples not + already selected and having lower overhead can be eliminated, because + the next side of the bounding polygon has to be steeper (i.e., the + corresponding TMMBR must have higher overhead) than the latest added + tuple. + + Line cc..c in Figure 1 illustrates another principle. This line is + parallel to line aa..a, but has a higher Y-intercept. That is, the + corresponding TMMBR tuple contains a higher maximum total media bit + rate value. Since line cc..c is outside the bounding polygon, it + + + +Wenger, et al. Standards Track [Page 25] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + illustrates the conclusion that if two TMMBR tuples have the same + overhead value, the one with higher maximum total media bit rate + value cannot be part of the bounding set and can be set aside. + + Two further observations complete the algorithm. Obviously, moving + from the left, the successive corners of the bounding polygon (i.e., + the intersection points between successive pairs of sides) lie at + successively higher packet rates. On the other hand, again moving + from the left, each successive line making up the bounding set + crosses the X-axis at a lower packet rate. + + The complete algorithm can now be specified. The algorithm works + with two lists of TMMBR tuples, the candidate list X and the selected + list Y, both ordered by increasing overhead value. The algorithm + terminates when all members of X have been discarded or removed for + processing. Membership of the selected list Y is probationary until + the algorithm is complete. Each member of the selected list is + associated with an intersection value, which is the packet rate at + which the line corresponding to that TMMBR tuple intersects with the + line corresponding to the previous TMMBR tuple in the selected list. + Each member of the selected list is also associated with a maximum + packet rate value, which is the lesser of the session maximum packet + rate SMAXPR (if any) and the packet rate at which the line + corresponding to that tuple crosses the X-axis. + + When the algorithm terminates, the selected list is equal to the + bounding set as defined in section 2.2. + + Initial Algorithm + + This algorithm is used by the media sender when it has received one + or more TMMBRs and before it has determined a bounding set for the + first time. + + 1. Sort the TMMBR tuples by order of increasing overhead. This is + the initial candidate list X. + + 2. When multiple tuples in the candidate list have the same overhead + value, discard all but the one with the lowest maximum total media + bit rate value. + + 3. Select and remove from the candidate list the TMMBR tuple with the + lowest maximum total media bit rate value. If there is more than + one tuple with that value, choose the one with the highest + overhead value. This is the first member of the selected list Y. + Set its intersection value equal to zero. Calculate its maximum + + + + + +Wenger, et al. Standards Track [Page 26] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + packet rate as the minimum of SMAXPR (if available) and the value + obtained from the following formula, which is the packet rate at + which the corresponding line crosses the X-axis. + + Max PR = TMMBR max total BR / (8 * TMMBR OH) ... (4) + + 4. Discard from the candidate list all tuples with a lower overhead + value than the selected tuple. + + 5. Remove the first remaining tuple from the candidate list for + processing. Call this the current candidate. + + 6. Calculate the packet rate PR at the intersection of the line + generated by the current candidate with the line generated by the + last tuple in the selected list Y, using equation (3). + + 7. If the calculated value PR is equal to or lower than the + intersection value stored for the last tuple of the selected list, + discard the last tuple of the selected list and go back to step 6 + (retaining the same current candidate). + + Note that the choice of the initial member of the selected list Y + in step 3 guarantees that the selected list will never be emptied + by this process, meaning that the algorithm must eventually (if + not immediately) fall through to step 8. + + 8. (This step is reached when the calculated PR value of the current + candidate is greater than the intersection value of the current + last member of the selected list Y.) If the calculated value PR + of the current candidate is lower than the maximum packet rate + associated with the last tuple in the selected list, add the + current candidate tuple to the end of the selected list. Store PR + as its intersection value. Calculate its maximum packet rate as + the lesser of SMAXPR (if available) and the maximum packet rate + calculated using equation (4). + + 9. If any tuples remain in the candidate list, go back to step 5. + + Incremental Algorithm + + The previous algorithm covered the initial case, where no selected + list had previously been created. It also applied only to the media + sender. When a previously created selected list is available at + either the media sender or media receiver, two other cases can be + considered: + + o when a TMMBR tuple not currently in the selected list is a + candidate for addition; + + + +Wenger, et al. Standards Track [Page 27] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + o when the values change in a TMMBR tuple currently in the + selected list. + + At the media receiver, these cases correspond, respectively, to those + of the non-owner and owner of a tuple in the TMMBN-reported bounding + set. + + In either case, the process of updating the selected list to take + account of the new/changed tuple can use the basic algorithm + described above, with the modification that the initial candidate set + consists only of the existing selected list and the new or changed + tuple. Some further optimization is possible (beyond starting with a + reduced candidate set) by taking advantage of the following + observations. + + The first observation is that if the new/changed candidate becomes + part of the new selected list, the result may be to cause zero or + more other tuples to be dropped from the list. However, if more than + one other tuple is dropped, the dropped tuples will be consecutive. + This can be confirmed geometrically by visualizing a new line that + cuts off a series of segments from the previously existing bounding + polygon. The cut-off segments are connected one to the next, the + geometric equivalent of consecutive tuples in a list ordered by + overhead value. Beyond the dropped set in either direction all of + the tuples that were in the earlier selected list will be in the + updated one. The second observation is that, leaving aside the new + candidate, the order of tuples remaining in the updated selected list + is unchanged because their overhead values have not changed. + + The consequence of these two observations is that, once the placement + of the new candidate and the extent of the dropped set of tuples (if + any) has been determined, the remaining tuples can be copied directly + from the candidate list into the selected list, preserving their + order. This conclusion suggests the following modified algorithm: + + o Run steps 1-4 of the basic algorithm. + + o If the new candidate has survived steps 2 and 4 and has become + the new first member of the selected list, run steps 5-9 on + subsequent candidates until another candidate is added to the + selected list. Then move all remaining candidates to the + selected list, preserving their order. + + o If the new candidate has survived steps 2 and 4 and has not + become the new first member of the selected list, start by + moving all tuples in the candidate list with lower overhead + values than that of the new candidate to the selected list, + preserving their order. Run steps 5-9 for the new candidate, + + + +Wenger, et al. Standards Track [Page 28] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + with the modification that the intersection values and maximum + packet rates for the tuples on the selected list have to be + calculated on the fly because they were not previously stored. + Continue processing only until a subsequent tuple has been + added to the selected list, then move all remaining candidates + to the selected list, preserving their order. + + Note that the new candidate could be added to the selected + list only to be dropped again when the next tuple is + processed. It can easily be seen that in this case the new + candidate does not displace any of the earlier tuples in the + selected list. The limitations of ASCII art make this + difficult to show in a figure. Line cc..c in Figure 1 would + be an example if it had a steeper slope (tuple C had a higher + overhead value), but still intersected line aa..a beyond where + line aa..a intersects line bb..b. + + The algorithm just described is approximate, because it does not take + account of tuples outside the selected list. To see how such tuples + can become relevant, consider Figure 1 and suppose that the maximum + total media bit rate in tuple A increases to the point that line + aa..a moves outside line cc..c. Tuple A will remain in the bounding + set calculated by the media sender. However, once it issues a new + TMMBN, media receiver C will apply the algorithm and discover that + its tuple C should now enter the bounding set. It will issue a TMMBR + to the media sender, which will repeat its calculation and come to + the appropriate conclusion. + + The rules of section 4.2 require that the media sender refrain from + raising its sending rate until media receivers have had a chance to + respond to the TMMBN. In the example just given, this delay ensures + that the relaxation of tuple A does not actually result in an attempt + to send media at a rate exceeding the capacity at C. + +3.5.4.3. Use of TMMBR in a Mixer-Based Multipoint Operation + + Assume a small mixer-based multiparty conference is ongoing, as + depicted in Topo-Mixer of [RFC5117]. All participants have + negotiated a common maximum bit rate that this session can use. The + conference operates over a number of unicast paths between the + participants and the mixer. The congestion situation on each of + these paths can be monitored by the participant in question and by + the mixer, utilizing, for example, RTCP receiver reports (RRs) or the + transport protocol, e.g., Datagram Congestion Control Protocol (DCCP) + [RFC4340]. However, any given participant has no knowledge of the + congestion situation of the connections to the other participants. + Worse, without mechanisms similar to the ones discussed in this + document, the mixer (which is aware of the congestion situation on + + + +Wenger, et al. Standards Track [Page 29] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + all connections it manages) has no standardized means to inform media + senders to slow down, short of forging its own receiver reports + (which is undesirable). In principle, a mixer confronted with such a + situation is obliged to thin or transcode streams intended for + connections that detected congestion. + + In practice, unfortunately, media-aware streaming thinning is a very + difficult and cumbersome operation and adds undesirable delay. If + media-unaware, it leads very quickly to unacceptable reproduced media + quality. Hence, a means to slow down senders even in the absence of + congestion on their connections to the mixer is desirable. + + To allow the mixer to throttle traffic on the individual links, + without performing transcoding, there is a need for a mechanism that + enables the mixer to ask a participant's media encoders to limit the + media stream bit rate they are currently generating. TMMBR provides + the required mechanism. When the mixer detects congestion between + itself and a given participant, it executes the following procedure: + + 1. It starts thinning the media traffic to the congested participant + to the supported bit rate. + + 2. It uses TMMBR to request the media sender(s) to reduce the total + media bit rate sent by them to the mixer, to a value that is in + compliance with congestion control principles for the slowest + link. Slow refers here to the available bandwidth / bit rate / + capacity and packet rate after congestion control. + + 3. As soon as the bit rate has been reduced by the sending part, the + mixer stops stream thinning implicitly, because there is no need + for it once the stream is in compliance with congestion control. + + This use of stream thinning as an immediate reaction tool followed up + by a quick control mechanism appears to be a reasonable compromise + between media quality and the need to combat congestion. + +3.5.4.4. Use of TMMBR in Point-to-Multipoint Using Multicast or + Translators + + In these topologies, corresponding to Topo-Multicast or Topo- + Translator, RTCP RRs are transmitted globally. This allows all + participants to detect transmission problems such as congestion, on a + medium timescale. As all media senders are aware of the congestion + situation of all media receivers, the rationale for the use of TMMBR + in the previous section does not apply. However, even in this case + the congestion control response can be improved when the unicast + + + + + +Wenger, et al. Standards Track [Page 30] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + links are using congestion controlled transport protocols (such as + TCP or DCCP). A peer may also report local limitations to the media + sender. + +3.5.4.5. Use of TMMBR in Point-to-Point Operation + + In use case 7, it is possible to use TMMBR to improve the performance + when the known upper limit of the bit rate changes. In this use + case, the signaling protocol has established an upper limit for the + session and total media bit rates. However, at the time of transport + link bit rate reduction, a receiver can avoid serious congestion by + sending a TMMBR to the sending side. Thus, TMMBR is useful for + putting restrictions on the application and thus placing the + congestion control mechanism in the right ballpark. However, TMMBR + is usually unable to provide the continuously quick feedback loop + required for real congestion control. Nor do its semantics match + those of congestion control given its different purpose. For these + reasons, TMMBR SHALL NOT be used as a substitute for congestion + control. + +3.5.4.6. Reliability + + The reaction of a media sender to the reception of a TMMBR message is + not immediately identifiable through inspection of the media stream. + Therefore, a more explicit mechanism is needed to avoid unnecessary + re-sending of TMMBR messages. Using a statistically based + retransmission scheme would only provide statistical guarantees of + the request being received. It would also not avoid the + retransmission of already received messages. In addition, it would + not allow for easy suppression of other participants' requests. For + these reasons, a mechanism based on explicit notification is used. + + Upon the reception of a TMMBR, a media sender sends a TMMBN + containing the current bounding set, and indicating which session + participants own that limit. In multicast scenarios, that allows all + other participants to suppress any request they may have, if their + limitations are less strict than the current ones (i.e., define lines + lying outside the feasible region as defined in section 2.2). + Keeping and notifying only the bounding set of tuples allows for + small message sizes and media sender states. A media sender only + keeps state for the SSRCs of the current owners of the bounding set + of tuples; all other requests and their sources are not saved. Once + the bounding set has been established, new TMMBR messages should be + generated only by owners of the bounding tuples and by other entities + that determine (by applying the algorithm of section 3.5.4.2 or its + equivalent) that their limitations should now be part of the bounding + set. + + + + +Wenger, et al. Standards Track [Page 31] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +4. RTCP Receiver Report Extensions + + This memo specifies six new feedback messages. The Full Intra + Request (FIR), Temporal-Spatial Trade-off Request (TSTR), Temporal- + Spatial Trade-off Notification (TSTN), and Video Back Channel Message + (VBCM) are "Payload Specific Feedback Messages" as defined in section + 6.3 of AVPF [RFC4585]. The Temporary Maximum Media Stream Bit Rate + Request (TMMBR) and Temporary Maximum Media Stream Bit Rate + Notification (TMMBN) are "Transport Layer Feedback Messages" as + defined in section 6.2 of AVPF. + + The new feedback messages are defined in the following subsections, + following a similar structure to that in sections 6.2 and 6.3 of the + AVPF specification [RFC4585]. + +4.1. Design Principles of the Extension Mechanism + + RTCP was originally introduced as a channel to convey presence, + reception quality statistics and hints on the desired media coding. + A limited set of media control mechanisms was introduced in early RTP + payload formats for video formats, for example, in RFC 2032 [RFC2032] + (which was obsoleted by RFC 4587 [RFC4587]). However, this + specification, for the first time, suggests a two-way handshake for + some of its messages. There is danger that this introduction could + be misunderstood as a precedent for the use of RTCP as an RTP session + control protocol. To prevent such a misunderstanding, this + subsection attempts to clarify the scope of the extensions specified + in this memo, and it strongly suggests that future extensions follow + the rationale spelled out here, or compellingly explain why they + divert from the rationale. + + In this memo, and in AVPF [RFC4585], only such messages have been + included as: + + a) have comparatively strict real-time constraints, which prevent the + use of mechanisms such as a SIP re-invite in most application + scenarios (the real-time constraints are explained separately for + each message where necessary); + + b) are multicast-safe in that the reaction to potentially + contradicting feedback messages is specified, as necessary for + each message; and + + c) are directly related to activities of a certain media codec, class + of media codecs (e.g., video codecs), or a given RTP packet + stream. + + + + + +Wenger, et al. Standards Track [Page 32] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + In this memo, a two-way handshake is introduced only for messages for + which: + + a) a notification or acknowledgement is required due to their nature. + An analysis to determine whether this requirement exists has been + performed separately for each message. + + b) the notification or acknowledgement cannot be easily derived from + the media bit stream. + + All messages in AVPF [RFC4585] and in this memo present their + contents in a simple, fixed binary format. This accommodates media + receivers that have not implemented higher control protocol + functionalities (SDP, XML parsers, and such) in their media path. + + Messages that do not conform to the design principles just described + are not an appropriate use of RTCP or of the Codec Control Framework + defined in this document. + +4.2. Transport Layer Feedback Messages + + As specified in section 6.1 of RFC 4585 [RFC4585], transport layer + feedback messages are identified by the RTCP packet type value RTPFB + (205). + + In AVPF, one message of this category had been defined. This memo + specifies two more such messages. They are identified by means of + the feedback message type (FMT) parameter as follows: + + Assigned in AVPF [RFC4585]: + + 1: Generic NACK + 31: reserved for future expansion of the identifier number space + + Assigned in this memo: + + 2: reserved (see note below) + 3: Temporary Maximum Media Stream Bit Rate Request (TMMBR) + 4: Temporary Maximum Media Stream Bit Rate Notification (TMMBN) + + Note: early versions of AVPF [RFC4585] reserved FMT=2 for a + code point that has later been removed. It has been pointed + out that there may be implementations in the field using this + value in accordance with the expired document. As there is + sufficient numbering space available, we mark FMT=2 as + reserved so to avoid possible interoperability problems with + any such early implementations. + + + + +Wenger, et al. Standards Track [Page 33] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Available for assignment: + + 0: unassigned + 5-30: unassigned + + The following subsection defines the formats of the Feedback Control + Information (FCI) entries for the TMMBR and TMMBN messages, + respectively, and specifies the associated behaviour at the media + sender and receiver. + +4.2.1. Temporary Maximum Media Stream Bit Rate Request (TMMBR) + + The Temporary Maximum Media Stream Bit Rate Request is identified by + RTCP packet type value PT=RTPFB and FMT=3. + + The FCI field of a Temporary Maximum Media Stream Bit Rate Request + (TMMBR) message SHALL contain one or more FCI entries. + +4.2.1.1. Message Format + + The Feedback Control Information (FCI) consists of one or more TMMBR + FCI entries with the following syntax: + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SSRC | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | MxTBR Exp | MxTBR Mantissa |Measured Overhead| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 2 - Syntax of an FCI Entry in the TMMBR Message + + SSRC (32 bits): The SSRC value of the media sender that is + requested to obey the new maximum bit rate. + + MxTBR Exp (6 bits): The exponential scaling of the mantissa for the + maximum total media bit rate value. The value is an + unsigned integer [0..63]. + + MxTBR Mantissa (17 bits): The mantissa of the maximum total media + bit rate value as an unsigned integer. + + Measured Overhead (9 bits): The measured average packet overhead + value in bytes. The measurement SHALL be done according + to the description in section 4.2.1.2. The value is an + unsigned integer [0..511]. + + + + +Wenger, et al. Standards Track [Page 34] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + The maximum total media bit rate (MxTBR) value in bits per second is + calculated from the MxTBR exponent (exp) and mantissa in the + following way: + + MxTBR = mantissa * 2^exp + + This allows for 17 bits of resolution in the range 0 to 131072*2^63 + (approximately 1.2*10^24). + + The length of the TMMBR feedback message SHALL be set to 2+2*N where + N is the number of TMMBR FCI entries. + +4.2.1.2. Semantics + + Behaviour at the Media Receiver (Sender of the TMMBR) + + TMMBR is used to indicate a transport-related limitation at the + reporting entity acting as a media receiver. TMMBR has the form of a + tuple containing two components. The first value is the highest bit + rate per sender of a media stream, available at a receiver-chosen + protocol layer, which the receiver currently supports in this RTP + session. The second value is the measured header overhead in bytes + as defined in section 2.2 and measured at the chosen protocol layer + in the packets received for the stream. The measurement of the + overhead is a running average that is updated for each packet + received for this particular media source (SSRC), using the following + formula: + + avg_OH (new) = 15/16*avg_OH (old) + 1/16*pckt_OH, + + where avg_OH is the running (exponentially smoothed) average and + pckt_OH is the overhead observed in the latest packet. + + If a maximum bit rate has been negotiated through signaling, the + maximum total media bit rate that the receiver reports in a TMMBR + message MUST NOT exceed the negotiated value converted to a common + basis (i.e., with overheads adjusted to bring it to the same + reference protocol layer). + + Within the common packet header for feedback messages (as defined in + section 6.1 of [RFC4585]), the "SSRC of packet sender" field + indicates the source of the request, and the "SSRC of media source" + is not used and SHALL be set to 0. Within a particular TMMBR FCI + entry, the "SSRC of media source" in the FCI field denotes the media + sender that the tuple applies to. This is useful in the multicast or + translator topologies where the reporting entity may address all of + the media senders in a single TMMBR message using multiple FCI + entries. + + + +Wenger, et al. Standards Track [Page 35] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + The media receiver SHALL save the contents of the latest TMMBN + message received from each media sender. + + The media receiver MAY send a TMMBR FCI entry to a particular media + sender under the following circumstances: + + o before any TMMBN message has been received from that media + sender; + + o when the media receiver has been identified as the source of a + bounding tuple within the latest TMMBN message received from + that media sender, and the value of the maximum total media bit + rate or the overhead relating to that media sender has changed; + + o when the media receiver has not been identified as the source + of a bounding tuple within the latest TMMBN message received + from that media sender, and, after the media receiver applies + the incremental algorithm from section 3.5.4.2 or a stricter + equivalent, the media receiver's tuple relating to that media + sender is determined to belong to the bounding set. + + A TMMBR FCI entry MAY be repeated in subsequent TMMBR messages if no + Temporary Maximum Media Stream Bit Rate Notification (TMMBN) FCI has + been received from the media sender at the time of transmission of + the next RTCP packet. The bit rate value of a TMMBR FCI entry MAY be + changed from one TMMBR message to the next. The overhead measurement + SHALL be updated to the current value of avg_OH each time the entry + is sent. + + If the value set by a TMMBR message is expected to be permanent, the + TMMBR setting party SHOULD renegotiate the session parameters to + reflect that using session setup signaling, e.g., a SIP re-invite. + + Behaviour at the Media Sender (Receiver of the TMMBR) + + When it receives a TMMBR message containing an FCI entry relating to + it, the media sender SHALL use an initial or incremental algorithm as + applicable to determine the bounding set of tuples based on the new + information. The algorithm used SHALL be at least as strict as the + corresponding algorithm defined in section 3.5.4.2. The media sender + MAY accumulate TMMBRs over a small interval (relative to the RTCP + sending interval) before making this calculation. + + Once it has determined the bounding set of tuples, the media sender + MAY use any combination of packet rate and net media bit rate within + the feasible region that these tuples describe to produce a lower + + + + + +Wenger, et al. Standards Track [Page 36] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + total media stream bit rate, as it may need to address a congestion + situation or other limiting factors. See section 5 (congestion + control) for more discussion. + + If the media sender concludes that it can increase the maximum total + media bit rate value, it SHALL wait before actually doing so, for a + period long enough to allow a media receiver to respond to the TMMBN + if it determines that its tuple belongs in the bounding set. This + delay period is estimated by the formula: + + 2 * RTT + T_Dither_Max, + + where RTT is the longest round trip time known to the media sender + and T_Dither_Max is defined in section 3.4 of [RFC4585]. Even in + point-to-point sessions, a media sender MUST obey the aforementioned + rule, as it is not guaranteed that a participant is able to determine + correctly whether all the sources are co-located in a single node, + and are coordinated. + + A TMMBN message SHALL be sent by the media sender at the earliest + possible point in time, in response to any TMMBR messages received + since the last sending of TMMBN. The TMMBN message indicates the + calculated set of bounding tuples and the owners of those tuples at + the time of the transmission of the message. + + An SSRC may time out according to the default rules for RTP session + participants, i.e., the media sender has not received any RTP or RTCP + packets from the owner for the last five regular reporting intervals. + An SSRC may also explicitly leave the session, with the participant + indicating this through the transmission of an RTCP BYE packet or + using an external signaling channel. If the media sender determines + that the owner of a tuple in the bounding set has left the session, + the media sender SHALL transmit a new TMMBN containing the previously + determined set of bounding tuples but with the tuple belonging to the + departed owner removed. + + A media sender MAY proactively initiate the equivalent to a TMMBR + message to itself, when it is aware that its transmission path is + more restrictive than the current limitations. As a result, a TMMBN + indicating the media source itself as the owner of a tuple is being + sent, thereby avoiding unnecessary TMMBR messages from other + participants. However, like any other participant, when the media + sender becomes aware of changed limitations, it is required to change + the tuple, and to send a corresponding TMMBN. + + + + + + + +Wenger, et al. Standards Track [Page 37] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Discussion + + Due to the unreliable nature of transport of TMMBR and TMMBN, the + above rules may lead to the sending of TMMBR messages that appear to + disobey those rules. Furthermore, in multicast scenarios it can + happen that more than one "non-owning" session participant may + determine, rightly or wrongly, that its tuple belongs in the bounding + set. This is not critical for a number of reasons: + + a) If a TMMBR message is lost in transmission, either the media + sender sends a new TMMBN message in response to some other media + receiver or it does not send a new TMMBN message at all. In the + first case, the media receiver applies the incremental algorithm + and, if it determines that its tuple should be part of the + bounding set, sends out another TMMBR. In the second case, it + repeats the sending of a TMMBR unconditionally. Either way, the + media sender eventually gets the information it needs. + + b) Similarly, if a TMMBN message gets lost, the media receiver that + has sent the corresponding TMMBR does not receive the notification + and is expected to re-send the request and trigger the + transmission of another TMMBN. + + c) If multiple competing TMMBR messages are sent by different session + participants, then the algorithm can be applied taking all of + these messages into account, and the resulting TMMBN provides the + participants with an updated view of how their tuples compare with + the bounded set. + + d) If more than one session participant happens to send TMMBR + messages at the same time and with the same tuple component + values, it does not matter which of those tuples is taken into the + bounding set. The losing session participant will determine, + after applying the algorithm, that its tuple does not enter the + bounding set, and will therefore stop sending its TMMBR. + + It is important to consider the security risks involved with faked + TMMBRs. See the security considerations in section 6. + + As indicated already, the feedback messages may be used in both + multicast and unicast sessions in any of the specified topologies. + However, for sessions with a large number of participants, using the + lowest common denominator, as required by this mechanism, may not be + the most suitable course of action. Large sessions may need to + consider other ways to adapt the bit rate to participants' + capabilities, such as partitioning the session into different quality + tiers or using some other method of achieving bit rate scalability. + + + + +Wenger, et al. Standards Track [Page 38] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +4.2.1.3. Timing Rules + + The first transmission of the TMMBR message MAY use early or + immediate feedback in cases when timeliness is desirable. Any + repetition of a request message SHOULD use regular RTCP mode for its + transmission timing. + +4.2.1.4. Handling in Translators and Mixers + + Media translators and mixers will need to receive and respond to + TMMBR messages as they are part of the chain that provides a certain + media stream to the receiver. The mixer or translator may act + locally on the TMMBR and thus generate a TMMBN to indicate that it + has done so. Alternatively, in the case of a media translator it can + forward the request, or in the case of a mixer generate one of its + own and pass it forward. In the latter case, the mixer will need to + send a TMMBN back to the original requestor to indicate that it is + handling the request. + +4.2.2. Temporary Maximum Media Stream Bit Rate Notification (TMMBN) + + The Temporary Maximum Media Stream Bit Rate Notification is + identified by RTCP packet type value PT=RTPFB and FMT=4. + + The FCI field of the TMMBN feedback message may contain zero, one, or + more TMMBN FCI entries. + +4.2.2.1. Message Format + + The Feedback Control Information (FCI) consists of zero, one, or more + TMMBN FCI entries with the following syntax: + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SSRC | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | MxTBR Exp | MxTBR Mantissa |Measured Overhead| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 3 - Syntax of an FCI Entry in the TMMBN Message + + SSRC (32 bits): The SSRC value of the "owner" of this tuple. + + MxTBR Exp (6 bits): The exponential scaling of the mantissa for the + maximum total media bit rate value. The value is an + unsigned integer [0..63]. + + + + +Wenger, et al. Standards Track [Page 39] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + MxTBR Mantissa (17 bits): The mantissa of the maximum total media + bit rate value as an unsigned integer. + + Measured Overhead (9 bits): The measured average packet overhead + value in bytes represented as an unsigned integer + [0..511]. + + Thus, the FCI within the TMMBN message contains entries indicating + the bounding tuples. For each tuple, the entry gives the owner by + the SSRC, followed by the applicable maximum total media bit rate and + overhead value. + + The length of the TMMBN message SHALL be set to 2+2*N where N is the + number of TMMBN FCI entries. + +4.2.2.2. Semantics + + This feedback message is used to notify the senders of any TMMBR + message that one or more TMMBR messages have been received or that an + owner has left the session. It indicates to all participants the + current set of bounding tuples and the "owners" of those tuples. + + Within the common packet header for feedback messages (as defined in + section 6.1 of [RFC4585]), the "SSRC of packet sender" field + indicates the source of the notification. The "SSRC of media source" + is not used and SHALL be set to 0. + + A TMMBN message SHALL be scheduled for transmission after the + reception of a TMMBR message with an FCI entry identifying this media + sender. Only a single TMMBN SHALL be sent, even if more than one + TMMBR message is received between the scheduling of the transmission + and the actual transmission of the TMMBN message. The TMMBN message + indicates the bounding tuples and their owners at the time of + transmitting the message. The bounding tuples included SHALL be the + set arrived at through application of the applicable algorithm of + section 3.5.4.2 or an equivalent, applied to the previous bounding + set, if any, and tuples received in TMMBR messages since the last + TMMBN was transmitted. + + The reception of a TMMBR message SHALL still result in the + transmission of a TMMBN message even if, after application of the + algorithm, the newly reported TMMBR tuple is not accepted into the + bounding set. In such a case, the bounding tuples and their owners + are not changed, unless the TMMBR was from an owner of a tuple within + the previously calculated bounding set. This procedure allows + session participants that did not see the last TMMBN message to get a + correct view of this media sender's state. + + + + +Wenger, et al. Standards Track [Page 40] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + As indicated in section 4.2.1.2, when a media sender determines that + an "owner" of a bounding tuple has left the session, then that tuple + is removed from the bounding set, and the media sender SHALL send a + TMMBN message indicating the remaining bounding tuples. If there are + no remaining bounding tuples, a TMMBN without any FCI SHALL be sent + to indicate this. Without a remaining bounding tuple, the maximum + media bit rate and maximum packet rate negotiated in session + signaling, if any, apply. + + Note: if any media receivers remain in the session, this last will + be a temporary situation. The empty TMMBN will cause every + remaining media receiver to determine that its limitation belongs + in the bounding set and send a TMMBR in consequence. + + In unicast scenarios (i.e., where a single sender talks to a single + receiver), the aforementioned algorithm to determine ownership + degenerates to the media receiver becoming the "owner" of the one + bounding tuple as soon as the media receiver has issued the first + TMMBR message. + +4.2.2.3. Timing Rules + + The TMMBN acknowledgement SHOULD be sent as soon as allowed by the + applied timing rules for the session. Immediate or early feedback + mode SHOULD be used for these messages. + +4.2.2.4. Handling by Translators and Mixers + + As discussed in section 4.2.1.4, mixers or translators may need to + issue TMMBN messages as responses to TMMBR messages for SSRCs handled + by them. + +4.3. Payload-Specific Feedback Messages + + As specified by section 6.1 of RFC 4585 [RFC4585], Payload-Specific + FB messages are identified by the RTCP packet type value PSFB (206). + + AVPF [RFC4585] defines three payload-specific feedback messages and + one application layer feedback message. This memo specifies four + additional payload-specific feedback messages. All are identified by + means of the FMT parameter as follows: + + + + + + + + + + +Wenger, et al. Standards Track [Page 41] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Assigned in [RFC4585]: + + 1: Picture Loss Indication (PLI) + 2: Slice Lost Indication (SLI) + 3: Reference Picture Selection Indication (RPSI) + 15: Application layer FB message + 31: reserved for future expansion of the number space + + Assigned in this memo: + + 4: Full Intra Request (FIR) Command + 5: Temporal-Spatial Trade-off Request (TSTR) + 6: Temporal-Spatial Trade-off Notification (TSTN) + 7: Video Back Channel Message (VBCM) + + Unassigned: + + 0: unassigned + 8-14: unassigned + 16-30: unassigned + + The following subsections define the new FCI formats for the + payload-specific feedback messages. + +4.3.1. Full Intra Request (FIR) + + The FIR message is identified by RTCP packet type value PT=PSFB and + FMT=4. + + The FCI field MUST contain one or more FIR entries. Each entry + applies to a different media sender, identified by its SSRC. + +4.3.1.1. Message Format + + The Feedback Control Information (FCI) for the Full Intra Request + consists of one or more FCI entries, the content of which is depicted + in Figure 4. The length of the FIR feedback message MUST be set to + 2+2*N, where N is the number of FCI entries. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SSRC | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Seq nr. | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 4 - Syntax of an FCI Entry in the FIR Message + + + +Wenger, et al. Standards Track [Page 42] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + SSRC (32 bits): The SSRC value of the media sender that is + requested to send a decoder refresh point. + + Seq nr. (8 bits): Command sequence number. The sequence number + space is unique for each pairing of the SSRC of command + source and the SSRC of the command target. The sequence + number SHALL be increased by 1 modulo 256 for each new + command. A repetition SHALL NOT increase the sequence + number. The initial value is arbitrary. + + Reserved (24 bits): All bits SHALL be set to 0 by the sender and + SHALL be ignored on reception. + + The semantics of this feedback message is independent of the RTP + payload type. + +4.3.1.2. Semantics + + Within the common packet header for feedback messages (as defined in + section 6.1 of [RFC4585]), the "SSRC of packet sender" field + indicates the source of the request, and the "SSRC of media source" + is not used and SHALL be set to 0. The SSRCs of the media senders to + which the FIR command applies are in the corresponding FCI entries. + A FIR message MAY contain requests to multiple media senders, using + one FCI entry per target media sender. + + Upon reception of FIR, the encoder MUST send a decoder refresh point + (see section 2.2) as soon as possible. + + The sender MUST consider congestion control as outlined in section 5, + which MAY restrict its ability to send a decoder refresh point + quickly. + + FIR SHALL NOT be sent as a reaction to picture losses -- it is + RECOMMENDED to use PLI [RFC4585] instead. FIR SHOULD be used only in + situations where not sending a decoder refresh point would render the + video unusable for the users. + + A typical example where sending FIR is appropriate is when, in a + multipoint conference, a new user joins the session and no regular + decoder refresh point interval is established. Another example would + be a video switching MCU that changes streams. Here, normally, the + MCU issues a FIR to the new sender so to force it to emit a decoder + refresh point. The decoder refresh point normally includes a Freeze + Picture Release (defined outside this specification), which re-starts + the rendering process of the receivers. Both techniques mentioned + are commonly used in MCU-based multipoint conferences. + + + + +Wenger, et al. Standards Track [Page 43] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Other RTP payload specifications such as RFC 2032 [RFC2032] already + define a feedback mechanism for certain codecs. An application + supporting both schemes MUST use the feedback mechanism defined in + this specification when sending feedback. For backward-compatibility + reasons, such an application SHOULD also be capable of receiving and + reacting to the feedback scheme defined in the respective RTP payload + format, if this is required by that payload format. + +4.3.1.3. Timing Rules + + The timing follows the rules outlined in section 3 of [RFC4585]. FIR + commands MAY be used with early or immediate feedback. The FIR + feedback message MAY be repeated. If using immediate feedback mode, + the repetition SHOULD wait at least one RTT before being sent. In + early or regular RTCP mode, the repetition is sent in the next + regular RTCP packet. + +4.3.1.4. Handling of FIR Message in Mixers and Translators + + A media translator or a mixer performing media encoding of the + content for which the session participant has issued a FIR is + responsible for acting upon it. A mixer acting upon a FIR SHOULD NOT + forward the message unaltered; instead, it SHOULD issue a FIR itself. + +4.3.1.5. Remarks + + Currently, video appears to be the only useful application for FIR, + as it appears to be the only RTP payload widely deployed that relies + heavily on media prediction across RTP packet boundaries. However, + use of FIR could also reasonably be envisioned for other media types + that share essential properties with compressed video, namely, + cross-frame prediction (whatever a frame may be for that media type). + One possible example may be the dynamic updates of MPEG-4 scene + descriptions. It is suggested that payload formats for such media + types refer to FIR and other message types defined in this + specification and in AVPF [RFC4585], instead of creating similar + mechanisms in the payload specifications. The payload specifications + may have to explain how the payload-specific terminologies map to the + video-centric terminology used herein. + + In conjunction with video codecs, FIR messages typically trigger the + sending of full intra or IDR pictures. Both are several times larger + than predicted (inter) pictures. Their size is independent of the + time they are generated. In most environments, especially when + employing bandwidth-limited links, the use of an intra picture + implies an allowed delay that is a significant multiple of the + typical frame duration. An example: if the sending frame rate is 10 + fps, and an intra picture is assumed to be 10 times as big as an + + + +Wenger, et al. Standards Track [Page 44] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + inter picture, then a full second of latency has to be accepted. In + such an environment, there is no need for a particularly short delay + in sending the FIR message. Hence, waiting for the next possible + time slot allowed by RTCP timing rules as per [RFC4585] should not + have an overly negative impact on the system performance. + + Mandating a maximum delay for completing the sending of a decoder + refresh point would be desirable from an application viewpoint, but + is problematic from a congestion control point of view. "As soon as + possible" as mentioned above appears to be a reasonable compromise. + + In environments where the sender has no control over the codec (e.g., + when streaming pre-recorded and pre-coded content), the reaction to + this command cannot be specified. One suitable reaction of a sender + would be to skip forward in the video bit stream to the next decoder + refresh point. In other scenarios, it may be preferable not to react + to the command at all, e.g., when streaming to a large multicast + group. Other reactions may also be possible. When deciding on a + strategy, a sender could take into account factors such as the size + of the receiving group, the "importance" of the sender of the FIR + message (however "importance" may be defined in this specific + application), the frequency of decoder refresh points in the content, + and so on. However, a session that predominantly handles pre-coded + content is not expected to use FIR at all. + + The relationship between the Picture Loss Indication and FIR is as + follows. As discussed in section 6.3.1 of AVPF [RFC4585], a Picture + Loss Indication informs the decoder about the loss of a picture and + hence the likelihood of misalignment of the reference pictures + between the encoder and decoder. Such a scenario is normally related + to losses in an ongoing connection. In point-to-point scenarios, and + without the presence of advanced error resilience tools, one possible + option for an encoder consists in sending a decoder refresh point. + However, there are other options. One example is that the media + sender ignores the PLI, because the embedded stream redundancy is + likely to clean up the reproduced picture within a reasonable amount + of time. The FIR, in contrast, leaves a (real-time) encoder no + choice but to send a decoder refresh point. It does not allow the + encoder to take into account any considerations such as the ones + mentioned above. + +4.3.2. Temporal-Spatial Trade-off Request (TSTR) + + The TSTR feedback message is identified by RTCP packet type value + PT=PSFB and FMT=5. + + The FCI field MUST contain one or more TSTR FCI entries. + + + + +Wenger, et al. Standards Track [Page 45] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +4.3.2.1. Message Format + + The content of the FCI entry for the Temporal-Spatial Trade-off + Request is depicted in Figure 5. The length of the feedback message + MUST be set to 2+2*N, where N is the number of FCI entries included. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SSRC | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Seq nr. | Reserved | Index | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 5 - Syntax of an FCI Entry in the TSTR Message + + SSRC (32 bits): The SSRC of the media sender that is requested to + apply the trade-off value given in Index. + + Seq nr. (8 bits): Request sequence number. The sequence number + space is unique for pairing of the SSRC of request source + and the SSRC of the request target. The sequence number + SHALL be increased by 1 modulo 256 for each new command. + A repetition SHALL NOT increase the sequence number. The + initial value is arbitrary. + + Reserved (19 bits): All bits SHALL be set to 0 by the sender and + SHALL be ignored on reception. + + Index (5 bits): An integer value between 0 and 31 that indicates + the relative trade-off that is requested. An index value + of 0 indicates the highest possible spatial quality, while + 31 indicates the highest possible temporal resolution. + +4.3.2.2. Semantics + + A decoder can suggest a temporal-spatial trade-off level by sending a + TSTR message to an encoder. If the encoder is capable of adjusting + its temporal-spatial trade-off, it SHOULD take into account the + received TSTR message for future coding of pictures. A value of 0 + suggests a high spatial quality and a value of 31 suggests a high + frame rate. The progression of values from 0 to 31 indicates + monotonically a desire for higher frame rate. The index values do + not correspond to precise values of spatial quality or frame rate. + + + + + + + +Wenger, et al. Standards Track [Page 46] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + The reaction to the reception of more than one TSTR message by a + media sender from different media receivers is left open to the + implementation. The selected trade-off SHALL be communicated to the + media receivers by means of the TSTN message. + + Within the common packet header for feedback messages (as defined in + section 6.1 of [RFC4585]), the "SSRC of packet sender" field + indicates the source of the request, and the "SSRC of media source" + is not used and SHALL be set to 0. The SSRCs of the media senders to + which the TSTR applies are in the corresponding FCI entries. + + A TSTR message MAY contain requests to multiple media senders, using + one FCI entry per target media sender. + +4.3.2.3. Timing Rules + + The timing follows the rules outlined in section 3 of [RFC4585]. + This request message is not time critical and SHOULD be sent using + regular RTCP timing. Only if it is known that the user interface + requires quick feedback, the message MAY be sent with early or + immediate feedback timing. + +4.3.2.4. Handling of Message in Mixers and Translators + + A mixer or media translator that encodes content sent to the session + participant issuing the TSTR SHALL consider the request to determine + if it can fulfill it by changing its own encoding parameters. A + media translator unable to fulfill the request MAY forward the + request unaltered towards the media sender. A mixer encoding for + multiple session participants will need to consider the joint needs + of these participants before generating a TSTR on its own behalf + towards the media sender. See also the discussion in section 3.5.2. + +4.3.2.5. Remarks + + The term "spatial quality" does not necessarily refer to the + resolution as measured by the number of pixels the reconstructed + video is using. In fact, in most scenarios the video resolution + stays constant during the lifetime of a session. However, all video + compression standards have means to adjust the spatial quality at a + given resolution, often influenced by the Quantizer Parameter or QP. + A numerically low QP results in a good reconstructed picture quality, + whereas a numerically high QP yields a coarse picture. The typical + reaction of an encoder to this request is to change its rate control + parameters to use a lower frame rate and a numerically lower (on + average) QP, or vice versa. The precise mapping of Index value to + + + + + +Wenger, et al. Standards Track [Page 47] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + frame rate and QP is intentionally left open here, as it depends on + factors such as the compression standard employed, spatial + resolution, content, bit rate, and so on. + +4.3.3. Temporal-Spatial Trade-off Notification (TSTN) + + The TSTN message is identified by RTCP packet type value PT=PSFB and + FMT=6. + + The FCI field SHALL contain one or more TSTN FCI entries. + +4.3.3.1. Message Format + + The content of an FCI entry for the Temporal-Spatial Trade-off + Notification is depicted in Figure 6. The length of the TSTN message + MUST be set to 2+2*N, where N is the number of FCI entries. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SSRC | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Seq nr. | Reserved | Index | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 6 - Syntax of the TSTN + + SSRC (32 bits): The SSRC of the source of the TSTR that resulted in + this Notification. + + Seq nr. (8 bits): The sequence number value from the TSTR that is + being acknowledged. + + Reserved (19 bits): All bits SHALL be set to 0 by the sender and + SHALL be ignored on reception. + + Index (5 bits): The trade-off value the media sender is using + henceforth. + + Informative note: The returned trade-off value (Index) may differ + from the requested one, for example, in cases where a media + encoder cannot tune its trade-off, or when pre-recorded content is + used. + + + + + + + + +Wenger, et al. Standards Track [Page 48] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +4.3.3.2. Semantics + + This feedback message is used to acknowledge the reception of a TSTR. + For each TSTR received targeted at the session participant, a TSTN + FCI entry SHALL be sent in a TSTN feedback message. A single TSTN + message MAY acknowledge multiple requests using multiple FCI entries. + The index value included SHALL be the same in all FCI entries of the + TSTN message. Including a FCI for each requestor allows each + requesting entity to determine that the media sender received the + request. The Notification SHALL also be sent in response to TSTR + repetitions received. If the request receiver has received TSTR with + several different sequence numbers from a single requestor, it SHALL + only respond to the request with the highest (modulo 256) sequence + number. Note that the highest sequence number may be a smaller + integer value due to the wrapping of the field. Appendix A.1 of + [RFC3550] has an algorithm for keeping track of the highest received + sequence number for RTP packets; it could be adapted for this usage. + + The TSTN SHALL include the Temporal-Spatial Trade-off index that will + be used as a result of the request. This is not necessarily the same + index as requested, as the media sender may need to aggregate + requests from several requesting session participants. It may also + have some other policies or rules that limit the selection. + + Within the common packet header for feedback messages (as defined in + section 6.1 of [RFC4585]), the "SSRC of packet sender" field + indicates the source of the Notification, and the "SSRC of media + source" is not used and SHALL be set to 0. The SSRCs of the + requesting entities to which the Notification applies are in the + corresponding FCI entries. + +4.3.3.3. Timing Rules + + The timing follows the rules outlined in section 3 of [RFC4585]. + This acknowledgement message is not extremely time critical and + SHOULD be sent using regular RTCP timing. + +4.3.3.4. Handling of TSTN in Mixers and Translators + + A mixer or translator that acts upon a TSTR SHALL also send the + corresponding TSTN. In cases where it needs to forward a TSTR + itself, the notification message MAY need to be delayed until the + TSTR has been responded to. + +4.3.3.5. Remarks + + None. + + + + +Wenger, et al. Standards Track [Page 49] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +4.3.4. H.271 Video Back Channel Message (VBCM) + + The VBCM is identified by RTCP packet type value PT=PSFB and FMT=7. + + The FCI field MUST contain one or more VBCM FCI entries. + +4.3.4.1. Message Format + + The syntax of an FCI entry within the VBCM indication is depicted in + Figure 7. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SSRC | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Seq nr. |0| Payload Type| Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | VBCM Octet String.... | Padding | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 7 - Syntax of an FCI Entry in the VBCM + + SSRC (32 bits): The SSRC value of the media sender that is requested + to instruct its encoder to react to the VBCM. + + Seq nr. (8 bits): Command sequence number. The sequence number space + is unique for pairing of the SSRC of the command source and + the SSRC of the command target. The sequence number SHALL be + increased by 1 modulo 256 for each new command. A repetition + SHALL NOT increase the sequence number. The initial value is + arbitrary. + + 0: Must be set to 0 by the sender and should not be acted upon by the + message receiver. + + Payload Type (7 bits): The RTP payload type for which the VBCM bit + stream must be interpreted. + + Length (16 bits): The length of the VBCM octet string in octets + exclusive of any padding octets. + + VBCM Octet String (variable length): This is the octet string + generated by the decoder carrying a specific feedback sub- + message. + + Padding (variable length): Bits set to 0 to make up a 32-bit + boundary. + + + +Wenger, et al. Standards Track [Page 50] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +4.3.4.2. Semantics + + The "payload" of the VBCM indication carries different types of + codec-specific, feedback information. The type of feedback + information can be classified as a 'status report' (such as an + indication that a bit stream was received without errors, or that a + partial or complete picture or block was lost) or 'update requests' + (such as complete refresh of the bit stream). + + Note: There are possible overlaps between the VBCM sub- + messages and CCM/AVPF feedback messages, such as FIR. Please + see section 3.5.3 for further discussion. + + The different types of feedback sub-messages carried in the VBCM are + indicated by the "payloadType" as defined in [H.271]. These sub- + message types are reproduced below for convenience. "payloadType", + in ITU-T Rec. H.271 terminology, refers to the sub-type of the H.271 + message and should not be confused with an RTP payload type. + + Payload Message Content + Type + --------------------------------------------------------------------- + 0 One or more pictures without detected bit stream error + mismatch + 1 One or more pictures that are entirely or partially lost + 2 A set of blocks of one picture that is entirely or partially + lost + 3 CRC for one parameter set + 4 CRC for all parameter sets of a certain type + 5 A "reset" request indicating that the sender should completely + refresh the video bit stream as if no prior bit stream data + had been received + > 5 Reserved for future use by ITU-T + + Table 2: H.271 message types ("payloadTypes") + + The bit string or the "payload" of a VBCM is of variable length and + is self-contained and coded in a variable-length, binary format. The + media sender necessarily has to be able to parse this optimized + binary format to make use of VBCMs. + + Each of the different types of sub-messages (indicated by + payloadType) may have different semantics depending on the codec + used. + + Within the common packet header for feedback messages (as defined in + section 6.1 of [RFC4585]), the "SSRC of packet sender" field + indicates the source of the request, and the "SSRC of media source" + + + +Wenger, et al. Standards Track [Page 51] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + is not used and SHALL be set to 0. The SSRCs of the media senders to + which the VBCM applies are in the corresponding FCI entries. The + sender of the VBCM MAY send H.271 messages to multiple media senders + and MAY send more than one H.271 message to the same media sender + within the same VBCM. + +4.3.4.3. Timing Rules + + The timing follows the rules outlined in section 3 of [RFC4585]. The + different sub-message types may have different properties in regards + to the timing of messages that should be used. If several different + types are included in the same feedback packet, then the requirements + for the sub-message type with the most stringent requirements should + be followed. + +4.3.4.4. Handling of Message in Mixers or Translators + + The handling of a VBCM in a mixer or translator is sub-message type + dependent. + +4.3.4.5. Remarks + + Please see section 3.5.3 for a discussion of the usage of H.271 + messages and messages defined in AVPF [RFC4585] and this memo with + similar functionality. + + Note: There has been some discussion whether the RTP payload type + field in this message is needed. It will be needed if there is + potentially more than one VBCM-capable RTP payload type in the same + session, and the semantics of a given VBCM changes between payload + types. For example, the picture identification mechanism in + messages of H.271 type 0 is fundamentally different between H.263 + and H.264 (although both use the same syntax). Therefore, the + payload field is justified here. There was a further comment that + for TSTR and FIR such a need does not exist, because the semantics + of TSTR and FIR are either loosely enough defined, or generic + enough, to apply to all video payloads currently in + existence/envisioned. + +5. Congestion Control + + The correct application of the AVPF [RFC4585] timing rules prevents + the network from being flooded by feedback messages. Hence, assuming + a correct implementation and configuration, the RTCP channel cannot + break its bit rate commitment and introduce congestion. + + The reception of some of the feedback messages modifies the behaviour + of the media senders or, more specifically, the media encoders. + + + +Wenger, et al. Standards Track [Page 52] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Thus, modified behaviour MUST respect the bandwidth limits that the + application of congestion control provides. For example, when a + media sender is reacting to a FIR, the unusually high number of + packets that form the decoder refresh point have to be paced in + compliance with the congestion control algorithm, even if the user + experience suffers from a slowly transmitted decoder refresh point. + + A change of the Temporary Maximum Media Stream Bit Rate value can + only mitigate congestion, but not cause congestion as long as + congestion control is also employed. An increase of the value by a + request REQUIRES the media sender to use congestion control when + increasing its transmission rate to that value. A reduction of the + value results in a reduced transmission bit rate, thus reducing the + risk for congestion. + +6. Security Considerations + + The defined messages have certain properties that have security + implications. These must be addressed and taken into account by + users of this protocol. + + The defined setup signaling mechanism is sensitive to modification + attacks that can result in session creation with sub-optimal + configuration, and, in the worst case, session rejection. To prevent + this type of attack, authentication and integrity protection of the + setup signaling is required. + + Spoofed or maliciously created feedback messages of the type defined + in this specification can have the following implications: + + a. severely reduced media bit rate due to false TMMBR messages + that sets the maximum to a very low value; + + b. assignment of the ownership of a bounding tuple to the wrong + participant within a TMMBN message, potentially causing + unnecessary oscillation in the bounding set as the mistakenly + identified owner reports a change in its tuple and the true + owner possibly holds back on changes until a correct TMMBN + message reaches the participants; + + c. sending TSTRs that result in a video quality different from + the user's desire, rendering the session less useful; + + d. sending multiple FIR commands to reduce the frame rate, and + make the video jerky, due to the frequent usage of decoder + refresh points. + + + + + +Wenger, et al. Standards Track [Page 53] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + To prevent these attacks, there is a need to apply authentication and + integrity protection of the feedback messages. This can be + accomplished against threats external to the current RTP session + using the RTP profile that combines Secure RTP [SRTP] and AVPF into + SAVPF [SAVPF]. In the mixer cases, separate security contexts and + filtering can be applied between the mixer and the participants, thus + protecting other users on the mixer from a misbehaving participant. + +7. SDP Definitions + + Section 4 of [RFC4585] defines a new SDP [RFC4566] attribute, rtcp- + fb, that may be used to negotiate the capability to handle specific + AVPF commands and indications, such as Reference Picture Selection, + Picture Loss Indication, etc. The ABNF for rtcp-fb is described in + section 4.2 of [RFC4585]. In this section, we extend the rtcp-fb + attribute to include the commands and indications that are described + for codec control in the present document. We also discuss the + Offer/Answer implications for the codec control commands and + indications. + +7.1. Extension of the rtcp-fb Attribute + + As described in AVPF [RFC4585], the rtcp-fb attribute indicates the + capability of using RTCP feedback. AVPF specifies that the rtcp-fb + attribute must only be used as a media level attribute and must not + be provided at session level. All the rules described in [RFC4585] + for rtcp-fb attribute relating to payload type and to multiple rtcp- + fb attributes in a session description also apply to the new feedback + messages defined in this memo. + + The ABNF [RFC4234] for rtcp-fb as defined in [RFC4585] is + + "a=rtcp-fb: " rtcp-fb-pt SP rtcp-fb-val CRLF + + where rtcp-fb-pt is the payload type and rtcp-fb-val defines the type + of the feedback message such as ack, nack, trr-int, and rtcp-fb-id. + For example, to indicate the support of feedback of Picture Loss + Indication, the sender declares the following in SDP + + v=0 + o=alice 3203093520 3203093520 IN IP4 host.example.com + s=Media with feedback + t=0 0 + c=IN IP4 host.example.com + m=audio 49170 RTP/AVPF 98 + a=rtpmap:98 H263-1998/90000 + a=rtcp-fb:98 nack pli + + + + +Wenger, et al. Standards Track [Page 54] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + In this document, we define a new feedback value "ccm", which + indicates the support of codec control using RTCP feedback messages. + The "ccm" feedback value SHOULD be used with parameters that indicate + the specific codec control commands supported. In this document, we + define four such parameters, namely: + + o "fir" indicates support of the Full Intra Request (FIR). + o "tmmbr" indicates support of the Temporary Maximum Media Stream + Bit Rate Request/Notification (TMMBR/TMMBN). It has an + optional sub-parameter to indicate the session maximum packet + rate (measured in packets per second) to be used. If not + included, this defaults to infinity. + o "tstr" indicates support of the Temporal-Spatial Trade-off + Request/Notification (TSTR/TSTN). + o "vbcm" indicates support of H.271 Video Back Channel Messages + (VBCMs). It has zero or more subparameters identifying the + supported H.271 "payloadType" values. + + In the ABNF for rtcp-fb-val defined in [RFC4585], there is a + placeholder called rtcp-fb-id to define new feedback types. "ccm" is + defined as a new feedback type in this document, and the ABNF for the + parameters for ccm is defined here (please refer to section 4.2 of + [RFC4585] for complete ABNF syntax). + + rtcp-fb-val =/ "ccm" rtcp-fb-ccm-param + + rtcp-fb-ccm-param = SP "fir" ; Full Intra Request + / SP "tmmbr" [SP "smaxpr=" MaxPacketRateValue] + ; Temporary max media bit rate + / SP "tstr" ; Temporal-Spatial Trade-Off + / SP "vbcm" *(SP subMessageType) ; H.271 VBCMs + / SP token [SP byte-string] + ; for future commands/indications + subMessageType = 1*8DIGIT + byte-string = <as defined in section 4.2 of [RFC4585] > + MaxPacketRateValue = 1*15DIGIT + +7.2. Offer-Answer + + The Offer/Answer [RFC3264] implications for codec control protocol + feedback messages are similar to those described in [RFC4585]. The + offerer MAY indicate the capability to support selected codec + commands and indications. The answerer MUST remove all CCM + parameters corresponding to the CCMs that it does not wish to support + in this particular media session (for example, because it does not + implement the message in question, or because its application logic + suggests that support of the message adds no value). The answerer + MUST NOT add new ccm parameters in addition to what has been offered. + + + +Wenger, et al. Standards Track [Page 55] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + The answer is binding for the media session and both offerer and + answerer MUST NOT use any feedback messages other than what both + sides have explicitly indicated as being supported. In other words, + only the joint subset of CCM parameters from the offer and answer may + be used. + + Note that including a CCM parameter in an offer or answer indicates + that the party (offerer or answerer) is at least capable of receiving + the corresponding CCM(s) and act upon them. In cases when the + reception of a negotiated CCM mandates the party to respond with + another CCM, it must also have that capability. Although it is not + mandated to initiate CCMs of any negotiated type, it is generally + expected that a party will initiate CCMs when appropriate. + + The session maximum packet rate parameter part of the TMMBR + indication is declarative, and the highest value from offer and + answer SHALL be used. If the session maximum packet rate parameter + is not present in an offer, it SHALL NOT be included by the answerer. + +7.3. Examples + + Example 1: The following SDP describes a point-to-point video call + with H.263, with the originator of the call declaring its capability + to support the FIR and TSTR/TSTN codec control messages. The SDP is + carried in a high-level signaling protocol like SIP. + + v=0 + o=alice 3203093520 3203093520 IN IP4 host.example.com + s=Point-to-Point call + c=IN IP4 192.0.2.124 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + m=video 51372 RTP/AVPF 98 + a=rtpmap:98 H263-1998/90000 + a=rtcp-fb:98 ccm tstr + a=rtcp-fb:98 ccm fir + + In the above example, when the sender receives a TSTR message from + the remote party it is capable of adjusting the trade-off as + indicated in the RTCP TSTN feedback message. + + Example 2: The following SDP describes a SIP end point joining a + video mixer that is hosting a multiparty video conferencing session. + The participant supports only the FIR (Full Intra Request) codec + control command and it declares it in its session description. + + + + + + +Wenger, et al. Standards Track [Page 56] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + v=0 + o=alice 3203093520 3203093520 IN IP4 host.example.com + s=Multiparty Video Call + c=IN IP4 192.0.2.124 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + m=video 51372 RTP/AVPF 98 + a=rtpmap:98 H263-1998/90000 + a=rtcp-fb:98 ccm fir + + When the video MCU decides to route the video of this participant, it + sends an RTCP FIR feedback message. Upon receiving this feedback + message, the end point is required to generate a full intra request. + + Example 3: The following example describes the Offer/Answer + implications for the codec control messages. The offerer wishes to + support "tstr", "fir" and "tmmbr". The offered SDP is + + -------------> Offer + v=0 + o=alice 3203093520 3203093520 IN IP4 host.example.com + s=Offer/Answer + c=IN IP4 192.0.2.124 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + m=video 51372 RTP/AVPF 98 + a=rtpmap:98 H263-1998/90000 + a=rtcp-fb:98 ccm tstr + a=rtcp-fb:98 ccm fir + a=rtcp-fb:* ccm tmmbr smaxpr=120 + + The answerer wishes to support only the FIR and TSTR/TSTN messages + and the answerer SDP is + + <---------------- Answer + + v=0 + o=alice 3203093520 3203093524 IN IP4 otherhost.example.com + s=Offer/Answer + c=IN IP4 192.0.2.37 + m=audio 47190 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + m=video 53273 RTP/AVPF 98 + a=rtpmap:98 H263-1998/90000 + a=rtcp-fb:98 ccm tstr + a=rtcp-fb:98 ccm fir + + + + + +Wenger, et al. Standards Track [Page 57] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + Example 4: The following example describes the Offer/Answer + implications for H.271 Video Back Channel Messages (VBCMs). The + offerer wishes to support VBCM and the sub-messages of payloadType 1 + (one or more pictures that are entirely or partially lost) and 2 (a + set of blocks of one picture that are entirely or partially lost). + + -------------> Offer + v=0 + o=alice 3203093520 3203093520 IN IP4 host.example.com + s=Offer/Answer + c=IN IP4 192.0.2.124 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + m=video 51372 RTP/AVPF 98 + a=rtpmap:98 H263-1998/90000 + a=rtcp-fb:98 ccm vbcm 1 2 + + The answerer only wishes to support sub-messages of type 1 only + + <---------------- Answer + + v=0 + o=alice 3203093520 3203093524 IN IP4 otherhost.example.com + s=Offer/Answer + c=IN IP4 192.0.2.37 + m=audio 47190 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + m=video 53273 RTP/AVPF 98 + a=rtpmap:98 H263-1998/90000 + a=rtcp-fb:98 ccm vbcm 1 + + So, in the above example, only VBCM indications comprised of + "payloadType" 1 will be supported. + +8. IANA Considerations + + The new value "ccm" has been registered with IANA in the "rtcp-fb" + Attribute Values registry located at the time of publication at: + http://www.iana.org/assignments/sdp-parameters + + Value name: ccm + Long Name: Codec Control Commands and Indications + Reference: RFC 5104 + + A new registry "Codec Control Messages" has been created to hold + "ccm" parameters located at time of publication at: + http://www.iana.org/assignments/sdp-parameters + + + + +Wenger, et al. Standards Track [Page 58] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + New registration in this registry follows the "Specification + required" policy as defined by [RFC2434]. In addition, they are + required to indicate any additional RTCP feedback types, such as + "nack" and "ack". + + The initial content of the registry is the following values: + + Value name: fir + Long name: Full Intra Request Command + Usable with: ccm + Reference: RFC 5104 + + Value name: tmmbr + Long name: Temporary Maximum Media Stream Bit Rate + Usable with: ccm + Reference: RFC 5104 + + Value name: tstr + Long name: Temporal Spatial Trade Off + Usable with: ccm + Reference: RFC 5104 + + Value name: vbcm + Long name: H.271 video back channel messages + Usable with: ccm + Reference: RFC 5104 + + The following values have been registered as FMT values in the "FMT + Values for RTPFB Payload Types" registry located at the time of + publication at: http://www.iana.org/assignments/rtp-parameters + + RTPFB range + Name Long Name Value Reference + -------------- --------------------------------- ----- --------- + Reserved 2 [RFC5104] + TMMBR Temporary Maximum Media Stream Bit 3 [RFC5104] + Rate Request + TMMBN Temporary Maximum Media Stream Bit 4 [RFC5104] + Rate Notification + + The following values have been registered as FMT values in the "FMT + Values for PSFB Payload Types" registry located at the time of + publication at: http://www.iana.org/assignments/rtp-parameters + + + + + + + + +Wenger, et al. Standards Track [Page 59] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + PSFB range + Name Long Name Value Reference + -------------- --------------------------------- ----- --------- + FIR Full Intra Request Command 4 [RFC5104] + TSTR Temporal-Spatial Trade-off Request 5 [RFC5104] + TSTN Temporal-Spatial Trade-off Notification 6 [RFC5104] + VBCM Video Back Channel Message 7 [RFC5104] + +9. Contributors + + Tom Taylor has made a very significant contribution to this + specification, for which the authors are very grateful, by helping + rewrite the specification. Especially the parts regarding the + algorithm for determining bounding sets for TMMBR have benefited. + +10. Acknowledgements + + The authors would like to thank Andrea Basso, Orit Levin, and Nermeen + Ismail for their work on the requirement and discussion document + [Basso]. + + Versions of this memo were reviewed and extensively commented on by + Roni Even, Colin Perkins, Randell Jesup, Keith Lantz, Harikishan + Desineni, Guido Franceschini, and others. The authors appreciate + these reviews. + +11. References + +11.1. Normative References + + [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. + Rey, "Extended RTP Profile for Real-Time Transport + Control Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC + 4585, July 2006. + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. + Jacobson, "RTP: A Transport Protocol for Real-Time + Applications", STD 64, RFC 3550, July 2003. + + [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session + Description Protocol", RFC 4566, July 2006. + + [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model + with Session Description Protocol (SDP)", RFC 3264, June + 2002. + + + +Wenger, et al. Standards Track [Page 60] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an + IANA Considerations Section in RFCs", BCP 26, RFC 2434, + October 1998. + + [RFC4234] Crocker, D. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", RFC 4234, October 2005. + +11.2. Informative References + + [Basso] Basso, A., Levin, O., and N. Ismail, "Requirements for + transport of video control commands", Work in Progress, + October 2004. + + [AVC] Joint Video Team of ITU-T and ISO/IEC JTC 1, Draft ITU-T + Recommendation and Final Draft International Standard of + Joint Video Specification (ITU-T Rec. H.264 | ISO/IEC + 14496-10 AVC), Joint Video Team (JVT) of ISO/IEC MPEG and + ITU-T VCEG, JVT-G050, March 2003. + + [H245] ITU-T Rec. H.245, "Control protocol for multimedia + communication", May 2006. + + [NEWPRED] S. Fukunaga, T. Nakai, and H. Inoue, "Error Resilient + Video Coding by Dynamic Replacing of Reference Pictures", + in Proc. Globcom'96, vol. 3, pp. 1503 - 1508, 1996. + + [SRTP] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. + Norrman, "The Secure Real-time Transport Protocol + (SRTP)", RFC 3711, March 2004. + + [RFC2032] Turletti, T. and C. Huitema, "RTP Payload Format for + H.261 Video Streams", RFC 2032, October 1996. + + [SAVPF] Ott, J. and E. Carrara, "Extended Secure RTP Profile for + RTCP-based Feedback (RTP/SAVPF)", Work in Progress, + November 2007. + + [RFC3525] Groves, C., Pantaleo, M., Anderson, T., and T. Taylor, + "Gateway Control Protocol Version 1", RFC 3525, June + 2003. + + [RFC3448] Handley, M., Floyd, S., Padhye, J., and J. Widmer, "TCP + Friendly Rate Control (TFRC): Protocol Specification", + RFC 3448, January 2003. + + [H.271] ITU-T Rec. H.271, "Video Back Channel Messages", June + 2006. + + + + +Wenger, et al. Standards Track [Page 61] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + + [RFC3890] Westerlund, M., "A Transport Independent Bandwidth + Modifier for the Session Description Protocol (SDP)", RFC + 3890, September 2004. + + [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram + Congestion Control Protocol (DCCP)", RFC 4340, March + 2006. + + [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, + A., Peterson, J., Sparks, R., Handley, M., and E. + Schooler, "SIP: Session Initiation Protocol", RFC 3261, + June 2002. + + [RFC2198] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., + Handley, M., Bolot, J., Vega-Garcia, A., and S. Fosse- + Parisis, "RTP Payload for Redundant Audio Data", RFC + 2198, September 1997. + + [RFC4587] Even, R., "RTP Payload Format for H.261 Video Streams", + RFC 4587, August 2006. + + [RFC5117] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 5117, + January 2008. + + [XML-MC] Levin, O., Even, R., and P. Hagendorf, "XML Schema for + Media Control", Work in Progress, November 2007. + + + + + + + + + + + + + + + + + + + + + + + + + +Wenger, et al. Standards Track [Page 62] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +Authors' Addresses + + Stephan Wenger + Nokia Corporation + 975, Page Mill Road, + Palo Alto,CA 94304 + USA + + Phone: +1-650-862-7368 + EMail: stewe@stewe.org + + + Umesh Chandra + Nokia Research Center + 975, Page Mill Road, + Palo Alto,CA 94304 + USA + + Phone: +1-650-796-7502 + Email: Umesh.1.Chandra@nokia.com + + + Magnus Westerlund + Ericsson Research + Ericsson AB + SE-164 80 Stockholm, SWEDEN + + Phone: +46 8 7190000 + EMail: magnus.westerlund@ericsson.com + + + Bo Burman + Ericsson Research + Ericsson AB + SE-164 80 Stockholm, SWEDEN + + Phone: +46 8 7190000 + EMail: bo.burman@ericsson.com + + + + + + + + + + + + + +Wenger, et al. Standards Track [Page 63] + +RFC 5104 Codec Control Messages in AVPF February 2008 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2008). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + + + + + + + + + + + + +Wenger, et al. Standards Track [Page 64] + |