| < draft-ietf-payload-flexible-fec-scheme-18.txt | draft-ietf-payload-flexible-fec-scheme-19.txt > | |||
|---|---|---|---|---|
| PAYLOAD M. Zanaty | PAYLOAD M. Zanaty | |||
| Internet-Draft Cisco | Internet-Draft Cisco | |||
| Intended status: Standards Track V. Singh | Intended status: Standards Track V. Singh | |||
| Expires: September 6, 2019 callstats.io | Expires: September 29, 2019 callstats.io | |||
| A. Begen | A. Begen | |||
| Networked Media | Networked Media | |||
| G. Mandyam | G. Mandyam | |||
| Qualcomm Inc. | Qualcomm Inc. | |||
| March 5, 2019 | March 28, 2019 | |||
| RTP Payload Format for Flexible Forward Error Correction (FEC) | RTP Payload Format for Flexible Forward Error Correction (FEC) | |||
| draft-ietf-payload-flexible-fec-scheme-18 | draft-ietf-payload-flexible-fec-scheme-19 | |||
| Abstract | Abstract | |||
| This document defines new RTP payload formats for the Forward Error | This document defines new RTP payload formats for the Forward Error | |||
| Correction (FEC) packets that are generated by the non-interleaved | Correction (FEC) packets that are generated by the non-interleaved | |||
| and interleaved parity codes from source media encapsulated in RTP. | and interleaved parity codes from source media encapsulated in RTP. | |||
| These parity codes are systematic codes, where a number of FEC repair | These parity codes are systematic codes (Flexible FEC, or "FLEX | |||
| packets are generated from a set of source packets from one or more | FEC"), where a number of FEC repair packets are generated from a set | |||
| source RTP streams. These FEC repair packets are sent in a | of source packets from one or more source RTP streams. These FEC | |||
| redundancy RTP stream separate from the source RTP stream(s) that | repair packets are sent in a redundancy RTP stream separate from the | |||
| carries the source packets. RTP source packets that were lost in | source RTP stream(s) that carries the source packets. RTP source | |||
| transmission can be reconstructed using the source and repair packets | packets that were lost in transmission can be reconstructed using the | |||
| that were received. The non-interleaved and interleaved parity codes | source and repair packets that were received. The non-interleaved | |||
| which are defined in this specification offer a good protection | and interleaved parity codes which are defined in this specification | |||
| against random and bursty packet losses, respectively, at a cost of | offer a good protection against random and bursty packet losses, | |||
| complexity. The RTP payload formats that are defined in this | respectively, at a cost of complexity. The RTP payload formats that | |||
| document address scalability issues experienced with the earlier | are defined in this document address scalability issues experienced | |||
| specifications, and offer several improvements. Due to these | with the earlier specifications, and offer several improvements. Due | |||
| changes, the new payload formats are not backward compatible with | to these changes, the new payload formats are not backward compatible | |||
| earlier specifications, but endpoints that do not implement this | with earlier specifications, but endpoints that do not implement this | |||
| specification can still work by simply ignoring the FEC repair | specification can still work by simply ignoring the FEC repair | |||
| packets. | packets. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 6, 2019. | This Internet-Draft will expire on September 29, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 35 ¶ | skipping to change at page 2, line 35 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Parity Codes . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. Parity Codes . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1.1. One-Dimensional (1-D) Non-interleaved (Row) FEC | 1.1.1. One-Dimensional (1-D) Non-interleaved (Row) FEC | |||
| Protection . . . . . . . . . . . . . . . . . . . . . 5 | Protection . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.1.2. 1-D Interleaved (Column) FEC Protection . . . . . . . 6 | 1.1.2. 1-D Interleaved (Column) FEC Protection . . . . . . . 6 | |||
| 1.1.3. Use Cases for 1-D FEC Protection . . . . . . . . . . 7 | 1.1.3. Use Cases for 1-D FEC Protection . . . . . . . . . . 7 | |||
| 1.1.4. Two-Dimensional (2-D) (Row and Column) FEC Protection 8 | 1.1.4. Two-Dimensional (2-D) (Row and Column) FEC Protection 8 | |||
| 1.1.5. FEC Protection with Flexible Mask . . . . . . . . . . 10 | 1.1.5. FEC Protection with Flexible Mask . . . . . . . . . . 10 | |||
| 1.1.6. FEC Overhead Considerations . . . . . . . . . . . . . 10 | 1.1.6. FEC Overhead Considerations . . . . . . . . . . . . . 10 | |||
| 1.1.7. Repair Window Considerations . . . . . . . . . . . . 10 | 1.1.7. FEC Protection with Retransmission . . . . . . . . . 10 | |||
| 1.1.8. Repair Window Considerations . . . . . . . . . . . . 10 | ||||
| 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 11 | 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3. Definitions and Notations . . . . . . . . . . . . . . . . . . 11 | 3. Definitions and Notations . . . . . . . . . . . . . . . . . . 11 | |||
| 3.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 11 | 3.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.2. Notations . . . . . . . . . . . . . . . . . . . . . . . . 11 | 3.2. Notations . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 4. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . 12 | 4. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 4.1. Source Packets . . . . . . . . . . . . . . . . . . . . . 12 | 4.1. Source Packets . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 4.2. FEC Repair Packets . . . . . . . . . . . . . . . . . . . 12 | 4.2. FEC Repair Packets . . . . . . . . . . . . . . . . . . . 13 | |||
| 4.2.1. RTP Header of FEC Repair Packets . . . . . . . . . . 13 | 4.2.1. RTP Header of FEC Repair Packets . . . . . . . . . . 13 | |||
| 4.2.2. FEC Header of FEC Repair Packets . . . . . . . . . . 15 | 4.2.2. FEC Header of FEC Repair Packets . . . . . . . . . . 15 | |||
| 5. Payload Format Parameters . . . . . . . . . . . . . . . . . . 20 | 5. Payload Format Parameters . . . . . . . . . . . . . . . . . . 20 | |||
| 5.1. Media Type Registration - Parity Codes . . . . . . . . . 20 | 5.1. Media Type Registration - Parity Codes . . . . . . . . . 20 | |||
| 5.1.1. Registration of audio/flexfec . . . . . . . . . . . . 21 | 5.1.1. Registration of audio/flexfec . . . . . . . . . . . . 21 | |||
| 5.1.2. Registration of video/flexfec . . . . . . . . . . . . 22 | 5.1.2. Registration of video/flexfec . . . . . . . . . . . . 22 | |||
| 5.1.3. Registration of text/flexfec . . . . . . . . . . . . 24 | 5.1.3. Registration of text/flexfec . . . . . . . . . . . . 23 | |||
| 5.1.4. Registration of application/flexfec . . . . . . . . . 25 | 5.1.4. Registration of application/flexfec . . . . . . . . . 24 | |||
| 5.2. Mapping to SDP Parameters . . . . . . . . . . . . . . . . 26 | ||||
| 5.2.1. Offer-Answer Model Considerations . . . . . . . . . . 27 | 5.2. Mapping to SDP Parameters . . . . . . . . . . . . . . . . 25 | |||
| 5.2.2. Declarative Considerations . . . . . . . . . . . . . 28 | 5.2.1. Offer-Answer Model Considerations . . . . . . . . . . 25 | |||
| 6. Protection and Recovery Procedures - Parity Codes . . . . . . 28 | 5.2.2. Declarative Considerations . . . . . . . . . . . . . 26 | |||
| 6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 28 | 6. Protection and Recovery Procedures - Parity Codes . . . . . . 26 | |||
| 6.2. Repair Packet Construction . . . . . . . . . . . . . . . 28 | 6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 6.3. Source Packet Reconstruction . . . . . . . . . . . . . . 30 | 6.2. Repair Packet Construction . . . . . . . . . . . . . . . 26 | |||
| 6.3.1. Associating the Source and Repair Packets . . . . . . 30 | 6.3. Source Packet Reconstruction . . . . . . . . . . . . . . 28 | |||
| 6.3.2. Recovering the RTP Header . . . . . . . . . . . . . . 32 | 6.3.1. Associating the Source and Repair Packets . . . . . . 28 | |||
| 6.3.3. Recovering the RTP Payload . . . . . . . . . . . . . 33 | 6.3.2. Recovering the RTP Header . . . . . . . . . . . . . . 30 | |||
| 6.3.3. Recovering the RTP Payload . . . . . . . . . . . . . 31 | ||||
| 6.3.4. Iterative Decoding Algorithm for the 2-D Parity FEC | 6.3.4. Iterative Decoding Algorithm for the 2-D Parity FEC | |||
| Protection . . . . . . . . . . . . . . . . . . . . . 34 | Protection . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 7. Signaling Requirements . . . . . . . . . . . . . . . . . . . 36 | 7. Signaling Requirements . . . . . . . . . . . . . . . . . . . 34 | |||
| 7.1. SDP Examples . . . . . . . . . . . . . . . . . . . . . . 37 | 7.1. SDP Examples . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 7.1.1. Example SDP for Flexible FEC Protection with in-band | 7.1.1. Example SDP for Flexible FEC Protection with in-band | |||
| SSRC mapping . . . . . . . . . . . . . . . . . . . . 37 | SSRC mapping . . . . . . . . . . . . . . . . . . . . 35 | |||
| 7.1.2. Example SDP for Flexible FEC Protection with explicit | 7.1.2. Example SDP for Flexible FEC Protection with explicit | |||
| signalling in the SDP . . . . . . . . . . . . . . . . 38 | signalling in the SDP . . . . . . . . . . . . . . . . 35 | |||
| 7.2. On the Use of the RTP Stream Identifier Source | 7.2. On the Use of the RTP Stream Identifier Source | |||
| Description . . . . . . . . . . . . . . . . . . . . . . . 38 | Description . . . . . . . . . . . . . . . . . . . . . . . 36 | |||
| 8. Congestion Control Considerations . . . . . . . . . . . . . . 38 | 8. Congestion Control Considerations . . . . . . . . . . . . . . 36 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 39 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 40 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 38 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 41 | 12.2. Informative References . . . . . . . . . . . . . . . . . 39 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines new RTP payload formats for the Forward Error | This document defines new RTP payload formats for the Forward Error | |||
| Correction (FEC) that is generated by the non-interleaved and | Correction (FEC) that is generated by the non-interleaved and | |||
| interleaved parity codes from a source media encapsulated in RTP | interleaved parity codes from a source media encapsulated in RTP | |||
| [RFC3550]. The type of the source media protected by these parity | [RFC3550]. The type of the source media protected by these parity | |||
| codes can be audio, video, text or application. The FEC data are | codes can be audio, video, text or application. The FEC data are | |||
| generated according to the media type parameters, which are | generated according to the media type parameters, which are | |||
| communicated out-of-band (e.g., in SDP). Furthermore, the | communicated out-of-band (e.g., in SDP). Furthermore, the | |||
| skipping to change at page 10, line 38 ¶ | skipping to change at page 10, line 38 ¶ | |||
| o 1-D Non-interleaved FEC Protection: Overhead = 1/L | o 1-D Non-interleaved FEC Protection: Overhead = 1/L | |||
| o 1-D Interleaved FEC Protection: Overhead = 1/D | o 1-D Interleaved FEC Protection: Overhead = 1/D | |||
| o 2-D Parity FEC Protection: Overhead = 1/L + 1/D | o 2-D Parity FEC Protection: Overhead = 1/L + 1/D | |||
| where L and D are the number of columns and rows in the source block, | where L and D are the number of columns and rows in the source block, | |||
| respectively. | respectively. | |||
| 1.1.7. Repair Window Considerations | 1.1.7. FEC Protection with Retransmission | |||
| The value for the repair window duration depends on the L and D | This specification supports both forward error correction, i.e. | |||
| values and cannot be chosen arbitrarily. More specifically, L and D | before any loss is reported, as well as retransmission of source | |||
| values determine the lower limit for the repair window duration. The | packets after loss is reported. The retransmission includes the RTP | |||
| upper limit of the repair window duration does not depend on the L | header of the source packet in addition to the payload. Therefore, | |||
| and D values. The rate of the source streams should also be | endpoints supporting other RTP retransmission methods (see [RFC4588]) | |||
| considered, as the repair window duration should ideally span several | in addition to FLEX FEC MUST only use the FLEX FEC retransmission | |||
| packetization intervals in order to leverage the error correction | method. | |||
| capabilities of the parity code. | ||||
| 1.1.8. Repair Window Considerations | ||||
| The value for the repair window duration is related to the maximum L | ||||
| and D values that are expected during a FLEX FEC session and | ||||
| therefore cannot be chosen arbitrarily. Repair packets that include | ||||
| L and D values larger than the repair window MUST not be sent. The | ||||
| rate of the source streams should also be considered, as the repair | ||||
| window duration should ideally span several packetization intervals | ||||
| in order to leverage the error correction capabilities of the parity | ||||
| code. | ||||
| Since the FEC configuration can change with each repair packet (see | ||||
| Section 4.2.2), for any given repair packet the FLEX FEC receiver | ||||
| MUST support all possible L and D combinations (both 1-D and 2-D | ||||
| interleaved over all source flows) and all flexible mask | ||||
| configurations (over all source flows) within the repair window to | ||||
| which it has agreed (e.g. through SDP or out-of-band signaling) for a | ||||
| FLEX FEC RTP session. In addition, the FLEX FEC receiver MUST | ||||
| support receipt of a retransmission of any source flow packet within | ||||
| the repair window to which it has agreed. | ||||
| 2. Requirements Notation | 2. Requirements Notation | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Definitions and Notations | 3. Definitions and Notations | |||
| skipping to change at page 16, line 5 ¶ | skipping to change at page 16, line 5 ¶ | |||
| : : | : : | |||
| Figure 10: FEC Header | Figure 10: FEC Header | |||
| The Repair "Payload", which follows the FEC Header, includes repair | The Repair "Payload", which follows the FEC Header, includes repair | |||
| of everything following the fixed 12-byte RTP header of each source | of everything following the fixed 12-byte RTP header of each source | |||
| packet, including any CSRC identifier list and header extensions if | packet, including any CSRC identifier list and header extensions if | |||
| present. An overview on how the repair payload can be used to | present. An overview on how the repair payload can be used to | |||
| recover source packets is provided Section 6. | recover source packets is provided Section 6. | |||
| +---+---+----------------------------------------------------------+ | +---+---+-----------------------------------------------------+ | |||
| | R | F | FEC Header variant | | | R | F | FEC Header variant | | |||
| +---+---+----------------------------------------------------------+ | +---+---+-----------------------------------------------------+ | |||
| | 0 | 0 | Flexible FEC Mask fields indicate source packets | | | 0 | 0 | Flexible FEC Mask fields indicate source packets | | |||
| | 0 | 1 | Fixed FEC L/D (cols/rows) fields indicate source packets | | | 0 | 1 | Fixed FEC L/D (cols/rows) indicate source packets | | |||
| | 1 | 0 | Retransmission of a single source packet | | | 1 | 0 | Retransmission of a single source packet | | |||
| | 1 | 1 | Invalid, MUST NOT send, MUST ignore if received | | | 1 | 1 | Reserved for future use, MUST NOT send, MUST ignore | | |||
| +---+---+----------------------------------------------------------+ | +---+---+-----------------------------------------------------+ | |||
| Figure 11: R and F bit values for FEC Header variants | Figure 11: R and F bit values for FEC Header variants | |||
| The first variant, when R=0 and F=0, has a mask to signal protected | The first variant, when R=0 and F=0, has a mask to signal protected | |||
| source packets, as shown in Figure 12. | source packets, as shown in Figure 12. | |||
| The second variant, when R=0 and F=1, has a number of columns (L) and | The second variant, when R=0 and F=1, has a number of columns (L) and | |||
| rows (D) to signal protected source packets, as shown in Figure 13. | rows (D) to signal protected source packets, as shown in Figure 13. | |||
| The final variant, when R=1 and F=0, is a retransmission format as | The final variant, when R=1 and F=0, is a retransmission format as | |||
| shown in Figure 15. | shown in Figure 15. | |||
| No variant uses R=1 and F=1, which is invalid, and MUST NOT be sent | No variant presently uses R=1 and F=1, which is reserved for future | |||
| by senders, and MUST be ignored by receivers. | use. Current FLEX FEC implementations MUST NOT send packets with | |||
| this variant, and receivers MUST ignore these packets. Future FLEX | ||||
| FEC implementations may use this by updating the media type | ||||
| registration. | ||||
| The FEC header for all variants consists of the following common | The FEC header for all variants consists of the following common | |||
| fields: | fields: | |||
| o The R bit MUST be set to 1 to indicate a retransmission packet, | o The R bit MUST be set to 1 to indicate a retransmission packet, | |||
| and MUST be set to 0 for FEC repair packets. | and MUST be set to 0 for FEC repair packets. | |||
| o The F bit indicates the type of FEC repair packets, as shown in | o The F bit indicates the type of FEC repair packets, as shown in | |||
| Figure 11, when the R bit is 0. The F bit MUST be set to 0 when | Figure 11, when the R bit is 0. The F bit MUST be set to 0 when | |||
| the R bit is 1 for retransmission packets. | the R bit is 1 for retransmission packets. | |||
| skipping to change at page 19, line 5 ¶ | skipping to change at page 19, line 5 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | ... next SN base and L/D for CSRC_i in CSRC list ... | | | ... next SN base and L/D for CSRC_i in CSRC list ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| : Repair "Payload" follows FEC Header : | : Repair "Payload" follows FEC Header : | |||
| : : | : : | |||
| Figure 13: FEC Header for F=1 | Figure 13: FEC Header for F=1 | |||
| Consequently, the following conditions occur for L and D values: | Consequently, the following conditions occur for L and D values: | |||
| If L=0, D=0, use the optional payload format parameters for L and D. | If L=0, D=0, reserved for future use, | |||
| MUST NOT send, MUST ignore if received. | ||||
| If L>0, D=0, indicates Row FEC, and no column FEC will follow. | If L>0, D=0, indicates row FEC, and no column FEC will follow (1D). | |||
| Hence, FEC = SN, SN+1, SN+2, ... , SN+(L-1), SN+L. | Source packets for each row: SN, SN+1, ..., SN+(L-1) | |||
| If L>0, D=1, indicates Row FEC, and column FEC will follow. | If L>0, D=1, indicates row FEC, and column FEC will follow (2D). | |||
| Hence, FEC = SN, SN+1, SN+2, ... , SN+(L-1), SN+L will be | Source packets for each row: SN, SN+1, ..., SN+(L-1) | |||
| produced for each row. | Source packets for each col: SN, SN+L, ..., SN+(D-1)*L | |||
| Then FEC = SN, SN+L, SN+2L, ..., SN+(D-1)L will be produced | After all row FEC packets have been sent, | |||
| for each column. | then the column FEC packets will be sent. | |||
| After all row FEC's have been sent, then the column FEC's | ||||
| will be sent. | ||||
| If L>0, D>1, indicates column FEC of every L packet | If L>0, D>1, indicates column FEC of every L packet, D times. | |||
| in a group of D packets starting at SN base. | Source packets for each col: SN, SN+L, ..., SN+(D-1)*L | |||
| Hence, FEC = SN+(Lx0), SN+(Lx1), ... , SN+(LxD). | ||||
| Figure 14: Interpreting the L and D field values | Figure 14: Interpreting the L and D field values | |||
| Given the 8-bit limit on L and D (as depicted in Figure 13), the | Given the 8-bit limit on L and D (as depicted in Figure 13), the | |||
| maximum value of either parameter is 255. The "optional payload | maximum value of either parameter is 255. If L=0 and D=0 are in a | |||
| format parameters" (Figure 14) to be used when L=0 and D=0 can be | packet, then the repair packet MUST be ignored by the receiver. In | |||
| determined through out-of-band signaling (see Section 5). If L=0 and | addition when L=1 and D=0, the repair packet becomes a retransmission | |||
| D=0 and cannot be determined through out-of-band signaling, then the | of a corresponding source packet. | |||
| repair packet MUST be ignored by the receiver. In addition when L=1 | ||||
| and D=0, the repair packet becomes a retransmission of a | ||||
| corresponding source packet. | ||||
| The values of L and D for a given block of recovery data will | The values of L and D for a given block of recovery data will | |||
| correspond to the type of recovery in use for that block of data. In | correspond to the type of recovery in use for that block of data. In | |||
| particular, for 2-D repair, the (L,D) values may not be constant | particular, for 2-D repair, the (L,D) values may not be constant | |||
| across all packets for a given SSRC being repaired. Similarly, the L | across all packets for a given SSRC being repaired. Similarly, the L | |||
| and D values can differ across different blocks of repair data | and D values can differ across different blocks of repair data | |||
| (repairing different SSRCs) in a single packet. | (repairing different SSRCs) in a single packet. If the values of L | |||
| and D result in a repair packet that exceed the repair window of the | ||||
| FLEX FEC session, then the repair packet MUST be ignored. | ||||
| It should be noted that the flexible mask-based approach may be | It should be noted that the flexible mask-based approach may be | |||
| inefficient for protecting a large number of source packets, or | inefficient for protecting a large number of source packets, or | |||
| impossible to signal if larger than the largest mask size. In such | impossible to signal if larger than the largest mask size. In such | |||
| cases, the fixed columns and rows variant may be more useful. | cases, the fixed columns and rows variant may be more useful. | |||
| 4.2.2.3. FEC Header for Retransmissions | 4.2.2.3. FEC Header for Retransmissions | |||
| When R=1 and F=0, the FEC packet is a retransmission of a single | When R=1 and F=0, the FEC packet is a retransmission of a single | |||
| source packet. Note that the layout of this retransmission packet is | source packet. Note that the layout of this retransmission packet is | |||
| skipping to change at page 21, line 26 ¶ | skipping to change at page 21, line 22 ¶ | |||
| o rate: The RTP timestamp (clock) rate. The rate SHALL be larger | o rate: The RTP timestamp (clock) rate. The rate SHALL be larger | |||
| than 1000 Hz to provide sufficient resolution to RTCP operations. | than 1000 Hz to provide sufficient resolution to RTCP operations. | |||
| However, it is RECOMMENDED to select the rate that matches the | However, it is RECOMMENDED to select the rate that matches the | |||
| rate of the protected source RTP stream. | rate of the protected source RTP stream. | |||
| o repair-window: The time that spans the source packets and the | o repair-window: The time that spans the source packets and the | |||
| corresponding repair packets. The size of the repair window is | corresponding repair packets. The size of the repair window is | |||
| specified in microseconds. | specified in microseconds. | |||
| Optional parameters: | ||||
| o L: indicates the number of columns of the source block that are | ||||
| protected by this FEC block and it applies to all the source | ||||
| SSRCs. L is a positive integer. | ||||
| o D: indicates the number of rows of the source block that are | ||||
| protected by this FEC block and it applies to all the source | ||||
| SSRCs. D is a positive integer. | ||||
| o ToP: indicates the type of protection applied by the sender: 0 for | ||||
| 1-D interleaved FEC protection, 1 for 1-D non-interleaved FEC | ||||
| protection, 2 for 2-D parity FEC protection, and 3 for | ||||
| retransmission. There can only be one value listed for ToP. The | ||||
| absence of the ToP field means that all protection types are | ||||
| allowed. An offer that lists more than one ToP value MUST be | ||||
| rejected. | ||||
| Note that both L and D in the optional parameters should follow the | ||||
| value pairings stated in Section 4.2.2.2 if included. | ||||
| Encoding considerations: This media type is framed (See Section 4.8 | Encoding considerations: This media type is framed (See Section 4.8 | |||
| in the template document [RFC6838]) and contains binary data. | in the template document [RFC6838]) and contains binary data. | |||
| Security considerations: See Section 9 of [RFCXXXX]. | Security considerations: See Section 9 of [RFCXXXX]. | |||
| Interoperability considerations: None. | Interoperability considerations: None. | |||
| Published specification: [RFCXXXX]. | Published specification: [RFCXXXX]. | |||
| Applications that use this media type: Multimedia applications that | Applications that use this media type: Multimedia applications that | |||
| skipping to change at page 22, line 46 ¶ | skipping to change at page 22, line 22 ¶ | |||
| o rate: The RTP timestamp (clock) rate. The rate SHALL be larger | o rate: The RTP timestamp (clock) rate. The rate SHALL be larger | |||
| than 1000 Hz to provide sufficient resolution to RTCP operations. | than 1000 Hz to provide sufficient resolution to RTCP operations. | |||
| However, it is RECOMMENDED to select the rate that matches the | However, it is RECOMMENDED to select the rate that matches the | |||
| rate of the protected source RTP stream. | rate of the protected source RTP stream. | |||
| o repair-window: The time that spans the source packets and the | o repair-window: The time that spans the source packets and the | |||
| corresponding repair packets. The size of the repair window is | corresponding repair packets. The size of the repair window is | |||
| specified in microseconds. | specified in microseconds. | |||
| Optional parameters: | ||||
| o L: indicates the number of columns of the source block that are | ||||
| protected by this FEC block and it applies to all the source | ||||
| SSRCs. L is a positive integer. | ||||
| o D: indicates the number of rows of the source block that are | ||||
| protected by this FEC block and it applies to all the source | ||||
| SSRCs. D is a positive integer. | ||||
| o ToP: indicates the type of protection applied by the sender: 0 for | ||||
| 1-D interleaved FEC protection, 1 for 1-D non-interleaved FEC | ||||
| protection, 2 for 2-D parity FEC protection, and 3 for | ||||
| retransmission. There can only be one value listed for ToP. The | ||||
| absence of the ToP field means that all protection types are | ||||
| allowed. An offer that lists more than one ToP value MUST be | ||||
| rejected. | ||||
| Note that both L and D in the optional parameters should follow the | ||||
| value pairings stated in Section 4.2.2.2 if included. | ||||
| Encoding considerations: This media type is framed (See Section 4.8 | Encoding considerations: This media type is framed (See Section 4.8 | |||
| in the template document [RFC6838]) and contains binary data. | in the template document [RFC6838]) and contains binary data. | |||
| Security considerations: See Section 9 of [RFCXXXX]. | Security considerations: See Section 9 of [RFCXXXX]. | |||
| Interoperability considerations: None. | Interoperability considerations: None. | |||
| Published specification: [RFCXXXX]. | Published specification: [RFCXXXX]. | |||
| Applications that use this media type: Multimedia applications that | Applications that use this media type: Multimedia applications that | |||
| skipping to change at page 24, line 22 ¶ | skipping to change at page 23, line 22 ¶ | |||
| o rate: The RTP timestamp (clock) rate. The rate SHALL be larger | o rate: The RTP timestamp (clock) rate. The rate SHALL be larger | |||
| than 1000 Hz to provide sufficient resolution to RTCP operations. | than 1000 Hz to provide sufficient resolution to RTCP operations. | |||
| However, it is RECOMMENDED to select the rate that matches the | However, it is RECOMMENDED to select the rate that matches the | |||
| rate of the protected source RTP stream. | rate of the protected source RTP stream. | |||
| o repair-window: The time that spans the source packets and the | o repair-window: The time that spans the source packets and the | |||
| corresponding repair packets. The size of the repair window is | corresponding repair packets. The size of the repair window is | |||
| specified in microseconds. | specified in microseconds. | |||
| Optional parameters: | ||||
| o L: indicates the number of columns of the source block that are | ||||
| protected by this FEC block and it applies to all the source | ||||
| SSRCs. L is a positive integer. | ||||
| o D: indicates the number of rows of the source block that are | ||||
| protected by this FEC block and it applies to all the source | ||||
| SSRCs. D is a positive integer. | ||||
| o ToP: indicates the type of protection applied by the sender: 0 for | ||||
| 1-D interleaved FEC protection, 1 for 1-D non-interleaved FEC | ||||
| protection, 2 for 2-D parity FEC protection, and 3 for | ||||
| retransmission. There can only be one value listed for ToP. The | ||||
| absence of the ToP field means that all protection types are | ||||
| allowed. An offer that lists more than one ToP value MUST be | ||||
| rejected. | ||||
| Note that both L and D in the optional parameters should follow the | ||||
| value pairings stated in Section 4.2.2.2 if included. | ||||
| Encoding considerations: This media type is framed (See Section 4.8 | Encoding considerations: This media type is framed (See Section 4.8 | |||
| in the template document [RFC6838]) and contains binary data. | in the template document [RFC6838]) and contains binary data. | |||
| Security considerations: See Section 9 of [RFCXXXX]. | Security considerations: See Section 9 of [RFCXXXX]. | |||
| Interoperability considerations: None. | Interoperability considerations: None. | |||
| Published specification: [RFCXXXX]. | Published specification: [RFCXXXX]. | |||
| Applications that use this media type: Multimedia applications that | Applications that use this media type: Multimedia applications that | |||
| skipping to change at page 25, line 44 ¶ | skipping to change at page 24, line 22 ¶ | |||
| o rate: The RTP timestamp (clock) rate. The rate SHALL be larger | o rate: The RTP timestamp (clock) rate. The rate SHALL be larger | |||
| than 1000 Hz to provide sufficient resolution to RTCP operations. | than 1000 Hz to provide sufficient resolution to RTCP operations. | |||
| However, it is RECOMMENDED to select the rate that matches the | However, it is RECOMMENDED to select the rate that matches the | |||
| rate of the protected source RTP stream. | rate of the protected source RTP stream. | |||
| o repair-window: The time that spans the source packets and the | o repair-window: The time that spans the source packets and the | |||
| corresponding repair packets. The size of the repair window is | corresponding repair packets. The size of the repair window is | |||
| specified in microseconds. | specified in microseconds. | |||
| Optional parameters: | ||||
| o L: indicates the number of columns of the source block that are | ||||
| protected by this FEC block and it applies to all the source | ||||
| SSRCs. L is a positive integer. | ||||
| o D: indicates the number of rows of the source block that are | ||||
| protected by this FEC block and it applies to all the source | ||||
| SSRCs. D is a positive integer. | ||||
| o ToP: indicates the type of protection applied by the sender: 0 for | ||||
| 1-D interleaved FEC protection, 1 for 1-D non-interleaved FEC | ||||
| protection, 2 for 2-D parity FEC protection, and 3 for | ||||
| retransmission. There can only be one value listed for ToP. The | ||||
| absence of the ToP field means that all protection types are | ||||
| allowed. An offer that lists more than one ToP value MUST be | ||||
| rejected. | ||||
| Note that both L and D in the optional parameters should follow the | ||||
| value pairings stated in Section 4.2.2.2 if included. | ||||
| Encoding considerations: This media type is framed (See Section 4.8 | Encoding considerations: This media type is framed (See Section 4.8 | |||
| in the template document [RFC6838]) and contains binary data. | in the template document [RFC6838]) and contains binary data. | |||
| Security considerations: See Section 9 of [RFCXXXX]. | Security considerations: See Section 9 of [RFCXXXX]. | |||
| Interoperability considerations: None. | Interoperability considerations: None. | |||
| Published specification: [RFCXXXX]. | Published specification: [RFCXXXX]. | |||
| Applications that use this media type: Multimedia applications that | Applications that use this media type: Multimedia applications that | |||
| skipping to change at page 27, line 4 ¶ | skipping to change at page 25, line 11 ¶ | |||
| Change controller: IETF Audio/Video Transport Payloads Working Group | Change controller: IETF Audio/Video Transport Payloads Working Group | |||
| delegated from the IESG (or it's successor as delegated by the IESG). | delegated from the IESG (or it's successor as delegated by the IESG). | |||
| 5.2. Mapping to SDP Parameters | 5.2. Mapping to SDP Parameters | |||
| Applications that use the RTP transport commonly use Session | Applications that use the RTP transport commonly use Session | |||
| Description Protocol (SDP) [RFC4566] to describe their RTP sessions. | Description Protocol (SDP) [RFC4566] to describe their RTP sessions. | |||
| The information that is used to specify the media types in an RTP | The information that is used to specify the media types in an RTP | |||
| session has specific mappings to the fields in an SDP description. | session has specific mappings to the fields in an SDP description. | |||
| This section provides these mappings for the media subtypes | This section provides these mappings for the media subtypes | |||
| registered by this document. Note that if an application does not | registered by this document. Note that if an application does not | |||
| use SDP to describe the RTP sessions, an appropriate mapping must be | use SDP to describe the RTP sessions, an appropriate mapping must be | |||
| defined and used to specify the media types and their parameters for | defined and used to specify the media types and their parameters for | |||
| the control/description protocol employed by the application. | the control/description protocol employed by the application. | |||
| The mapping of the media type specification for "non-interleaved- | The mapping of the media type specification for "flexfec" and its | |||
| parityfec" and "interleaved-parityfec" and their parameters in SDP is | associated parameters in SDP is as follows: | |||
| as follows: | ||||
| o The media type (e.g., "application") goes into the "m=" line as | o The media type (e.g., "application") goes into the "m=" line as | |||
| the media name. | the media name. | |||
| o The media subtype goes into the "a=rtpmap" line as the encoding | o The media subtype goes into the "a=rtpmap" line as the encoding | |||
| name. The RTP clock rate parameter ("rate") also goes into the | name. The RTP clock rate parameter ("rate") also goes into the | |||
| "a=rtpmap" line as the clock rate. | "a=rtpmap" line as the clock rate. | |||
| o The remaining required payload-format-specific parameters go into | o The remaining required payload-format-specific parameters go into | |||
| the "a=fmtp" line by copying them directly from the media type | the "a=fmtp" line by copying them directly from the media type | |||
| string as a semicolon-separated list of parameter=value pairs. | string as a semicolon-separated list of parameter=value pairs. | |||
| SDP examples are provided in Section 7.1. | SDP examples are provided in Section 7.1. | |||
| 5.2.1. Offer-Answer Model Considerations | 5.2.1. Offer-Answer Model Considerations | |||
| When offering 1-D interleaved parity FEC over RTP using SDP in an | When offering parity FEC over RTP using SDP in an Offer/Answer model | |||
| Offer/Answer model [RFC3264], the following considerations apply: | [RFC3264], the following considerations apply: | |||
| o Each combination of the L and D parameters produces a different | ||||
| FEC data and is not compatible with any other combination. A | ||||
| sender application may desire to offer multiple offers with | ||||
| different sets of L and D values as long as the parameter values | ||||
| are valid. The receiver SHOULD choose the offer that has a | ||||
| sufficient amount of interleaving. If multiple such offers exist, | ||||
| the receiver may choose the offer that has the lowest overhead or | ||||
| the one that requires the smallest amount of buffering. The | ||||
| selection depends on the application requirements. | ||||
| o The value for the repair-window parameter depends on the L and D | ||||
| values. Based on the values of L and D, a lower bound on the | ||||
| repair-window can be inferred (see Section 1.1.7). | ||||
| o Although combinations with the same L and D values but with | o A sender application will indicate a repair window consistent with | |||
| different repair-window sizes produce the same FEC data, such | the desired amount of protection. Note that since the sender can | |||
| combinations are still considered different offers. The size of | change the FEC configuration on a packet-by-packet basis, the | |||
| the repair-window is related to the maximum delay between the | receiver must support any valid FLEX FEC configuration within the | |||
| transmission of a source packet and the associated repair packet. | repair window associated with the offer (see Section 4.2.2). If | |||
| the receiver cannot support the offered repair window it MUST | ||||
| reject the offer. | ||||
| This directly impacts the buffering requirement on the receiver | o The size of the repair-window is related to the maximum delay | |||
| side and the receiver must consider this when choosing an offer. | between the transmission of a source packet and the associated | |||
| repair packet. This directly impacts the buffering requirement on | ||||
| the receiver side and the receiver must consider this when | ||||
| choosing an offer. | ||||
| o Any unknown option in the offer must be ignored and deleted from | o Any unknown option in the offer must be ignored and deleted from | |||
| the answer (see Section 6 of [RFC3264]). If FEC is not desired by | the answer (see Section 6 of [RFC3264]). If FEC is not desired by | |||
| the receiver, it can be deleted from the answer. | the receiver, it can be deleted from the answer. | |||
| 5.2.2. Declarative Considerations | 5.2.2. Declarative Considerations | |||
| In declarative usage, like SDP in the Real-time Streaming Protocol | In declarative usage, like SDP in the Real-time Streaming Protocol | |||
| (RTSP, for RTSP 1.0 see [RFC2326] and for RTSP 2.0 see [RFC7826]) or | (RTSP, for RTSP 1.0 see [RFC2326] and for RTSP 2.0 see [RFC7826]) or | |||
| the Session Announcement Protocol (SAP) [RFC2974], the following | the Session Announcement Protocol (SAP) [RFC2974], the following | |||
| skipping to change at page 31, line 42 ¶ | skipping to change at page 29, line 40 ¶ | |||
| source packets missing per column or row in set T, 1-D FEC protection | source packets missing per column or row in set T, 1-D FEC protection | |||
| may fail to recover all the missing information. | may fail to recover all the missing information. | |||
| When value of L is non-zero, the 8-bit fields indicate the offset of | When value of L is non-zero, the 8-bit fields indicate the offset of | |||
| packets protected by an interleaved (D>0) or non-interleaved (D=0) | packets protected by an interleaved (D>0) or non-interleaved (D=0) | |||
| FEC packet. Using a combination of interleaved and non-interleaved | FEC packet. Using a combination of interleaved and non-interleaved | |||
| FEC repair packets can form 2-D protection patterns. | FEC repair packets can form 2-D protection patterns. | |||
| Mathematically, for any received repair packet, p*, the sequence | Mathematically, for any received repair packet, p*, the sequence | |||
| numbers of the source packets that are protected by this repair | numbers of the source packets that are protected by this repair | |||
| packet are determined as follows, where p*_snb is the sequence number | packet are determined as follows, where SN is the sequence number | |||
| base in the FEC header: | base in the FEC header: | |||
| When D = 0: | For each SSRC (in CSRC list): | |||
| p*_snb, p*_snb+1,..., p*_snb+L | When D <= 1: Source packets for each row: SN, SN+1, ..., SN+(L-1) | |||
| When D > 0: | When D > 1: Source packets for each col: SN, SN+L, ..., SN+(D-1)*L | |||
| p*_snb, p*_snb+(Lx1), p*_snb+(Lx2),..., p*_snb+(LxD) | ||||
| 6.3.1.3. Signaled in SDP | ||||
| If the endpoint relies entirely on out-of-band signaling (R=0, F=1, | ||||
| L=0, D=0 in the FEC header), then this information may be inferred | ||||
| from the media type parameters specified in the SDP description. | ||||
| Furthermore, the payload type field in the RTP header assists the | ||||
| receiver to distinguish an interleaved or non-interleaved FEC packet. | ||||
| Mathematically, for any received repair packet, p*, the sequence | ||||
| numbers of the source packets that are protected by this repair | ||||
| packet are determined as follows: | ||||
| p*_snb + i * X_1 (modulo 65536) | ||||
| where p*_snb denotes the value in the SN base field of p*'s FEC | ||||
| header, X_1 is set to L and 1 for the interleaved and non-interleaved | ||||
| FEC repair packets, respectively, and | ||||
| 0 <= i < X_2 | ||||
| where X_2 is set to D and L for the interleaved and non-interleaved | ||||
| FEC repair packets, respectively. | ||||
| 6.3.2. Recovering the RTP Header | 6.3.2. Recovering the RTP Header | |||
| For a given set T, the procedure for the recovery of the RTP header | For a given set T, the procedure for the recovery of the RTP header | |||
| of the missing packet, whose sequence number is denoted by SEQNUM, is | of the missing packet, whose sequence number is denoted by SEQNUM, is | |||
| as follows: | as follows: | |||
| 1. For each of the source packets that are successfully received in | 1. For each of the source packets that are successfully received in | |||
| T, compute the 80-bit string by concatenating the first 64 bits | T, compute the 80-bit string by concatenating the first 64 bits | |||
| of their RTP header and the unsigned network-ordered 16-bit | of their RTP header and the unsigned network-ordered 16-bit | |||
| skipping to change at page 37, line 43 ¶ | skipping to change at page 35, line 25 ¶ | |||
| SSRCs. The repair window is set to 200 ms. | SSRCs. The repair window is set to 200 ms. | |||
| v=0 | v=0 | |||
| o=mo 1122334455 1122334466 IN IP4 fec.example.com | o=mo 1122334455 1122334466 IN IP4 fec.example.com | |||
| s=FlexFEC minimal SDP signalling Example | s=FlexFEC minimal SDP signalling Example | |||
| t=0 0 | t=0 0 | |||
| m=video 30000 RTP/AVP 96 98 | m=video 30000 RTP/AVP 96 98 | |||
| c=IN IP4 233.252.0.1/127 | c=IN IP4 233.252.0.1/127 | |||
| a=rtpmap:96 VP8/90000 | a=rtpmap:96 VP8/90000 | |||
| a=rtpmap:98 flexfec/90000 | a=rtpmap:98 flexfec/90000 | |||
| a=fmtp:98; repair-window=200ms | a=fmtp:98; repair-window=200000 | |||
| 7.1.2. Example SDP for Flexible FEC Protection with explicit signalling | 7.1.2. Example SDP for Flexible FEC Protection with explicit signalling | |||
| in the SDP | in the SDP | |||
| This example shows one source video stream (ssrc:1234) and one FEC | This example shows one source video stream (ssrc:1234) and one FEC | |||
| repair streams (ssrc:2345). One FEC group is formed with the | repair streams (ssrc:2345). One FEC group is formed with the | |||
| "a=ssrc-group:FEC-FR 1234 2345" line. The source and repair streams | "a=ssrc-group:FEC-FR 1234 2345" line. The source and repair streams | |||
| are multiplexed on different SSRCs. The repair window is set to 200 | are multiplexed on different SSRCs. The repair window is set to 200 | |||
| ms. | ms. | |||
| v=0 | v=0 | |||
| o=ali 1122334455 1122334466 IN IP4 fec.example.com | o=ali 1122334455 1122334466 IN IP4 fec.example.com | |||
| s=2-D Parity FEC with no in band signalling Example | s=2-D Parity FEC with no in band signalling Example | |||
| t=0 0 | t=0 0 | |||
| m=video 30000 RTP/AVP 100 110 | m=video 30000 RTP/AVP 100 110 | |||
| c=IN IP4 192.0.2.0/24 | c=IN IP4 192.0.2.0/24 | |||
| a=rtpmap:100 MP2T/90000 | a=rtpmap:100 MP2T/90000 | |||
| a=rtpmap:110 flexfec/90000 | a=rtpmap:110 flexfec/90000 | |||
| a=fmtp:110 L:5; D:10; ToP:2; repair-window:200000 | a=fmtp:110; repair-window:200000 | |||
| a=ssrc:1234 | a=ssrc:1234 | |||
| a=ssrc:2345 | a=ssrc:2345 | |||
| a=ssrc-group:FEC-FR 1234 2345 | a=ssrc-group:FEC-FR 1234 2345 | |||
| 7.2. On the Use of the RTP Stream Identifier Source Description | 7.2. On the Use of the RTP Stream Identifier Source Description | |||
| The RTP Stream Identifier Source Description [I-D.ietf-avtext-rid] is | The RTP Stream Identifier Source Description [I-D.ietf-avtext-rid] is | |||
| a format that can be used to identify a single RTP source stream | a format that can be used to identify a single RTP source stream | |||
| along with an associated repair stream. However, this specification | along with an associated repair stream. However, this specification | |||
| already defines a method of source and repair stream identification | already defines a method of source and repair stream identification | |||
| skipping to change at page 42, line 34 ¶ | skipping to change at page 40, line 11 ¶ | |||
| [RFC4301] Kent, S. and K. Seo, "Security Architecture for the | [RFC4301] Kent, S. and K. Seo, "Security Architecture for the | |||
| Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, | Internet Protocol", RFC 4301, DOI 10.17487/RFC4301, | |||
| December 2005, <https://www.rfc-editor.org/info/rfc4301>. | December 2005, <https://www.rfc-editor.org/info/rfc4301>. | |||
| [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, | [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, | |||
| "Extended RTP Profile for Real-time Transport Control | "Extended RTP Profile for Real-time Transport Control | |||
| Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, | Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, | |||
| DOI 10.17487/RFC4585, July 2006, | DOI 10.17487/RFC4585, July 2006, | |||
| <https://www.rfc-editor.org/info/rfc4585>. | <https://www.rfc-editor.org/info/rfc4585>. | |||
| [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. | ||||
| Hakenberg, "RTP Retransmission Payload Format", RFC 4588, | ||||
| DOI 10.17487/RFC4588, July 2006, | ||||
| <https://www.rfc-editor.org/info/rfc4588>. | ||||
| [RFC5109] Li, A., Ed., "RTP Payload Format for Generic Forward Error | [RFC5109] Li, A., Ed., "RTP Payload Format for Generic Forward Error | |||
| Correction", RFC 5109, DOI 10.17487/RFC5109, December | Correction", RFC 5109, DOI 10.17487/RFC5109, December | |||
| 2007, <https://www.rfc-editor.org/info/rfc5109>. | 2007, <https://www.rfc-editor.org/info/rfc5109>. | |||
| [RFC5725] Begen, A., Hsu, D., and M. Lague, "Post-Repair Loss RLE | [RFC5725] Begen, A., Hsu, D., and M. Lague, "Post-Repair Loss RLE | |||
| Report Block Type for RTP Control Protocol (RTCP) Extended | Report Block Type for RTP Control Protocol (RTCP) Extended | |||
| Reports (XRs)", RFC 5725, DOI 10.17487/RFC5725, February | Reports (XRs)", RFC 5725, DOI 10.17487/RFC5725, February | |||
| 2010, <https://www.rfc-editor.org/info/rfc5725>. | 2010, <https://www.rfc-editor.org/info/rfc5725>. | |||
| [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer | |||
| End of changes. 37 change blocks. | ||||
| 228 lines changed or deleted | 136 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||