| draft-pantos-http-live-streaming-23v3.original | draft-pantos-http-live-streaming-23v3.txt | |||
|---|---|---|---|---|
| Informational R. Pantos, Ed. | Independent R. Pantos, Ed. | |||
| Internet-Draft Apple Inc. | Internet-Draft Apple Inc. | |||
| Intended status: Informational W. May | Intended status: Informational W. May | |||
| Expires: November 23, 2017 Major League Baseball Advanced Media | Expires: November 23, 2017 Major League Baseball Advanced Media | |||
| May 22, 2017 | May 22, 2017 | |||
| HTTP Live Streaming | HTTP Live Streaming | |||
| draft-pantos-http-live-streaming-23 | draft-pantos-http-live-streaming-23 | |||
| Abstract | Abstract | |||
| skipping to change at page 1, line 46 | skipping to change at page 1, line 46 | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | ||||
| This Informational Internet Draft is submitted as an RFC Editor | the Trust Legal Provisions and are provided without warranty as | |||
| Contribution and/or non-IETF Document (not as a Contribution, IETF | described in the Simplified BSD License. | |||
| Contribution, nor IETF Document) in accordance with BCP 78 and BCP | ||||
| 79. | ||||
| This document may not be modified, and derivative works of it may not | ||||
| be created, except to format it for publication as an RFC or to | ||||
| translate it into languages other than English. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction to HTTP Live Streaming . . . . . . . . . . . . . 4 | 1. Introduction to HTTP Live Streaming . . . . . . . . . . . . . 3 | |||
| 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Media Segments . . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Media Segments . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1. Supported Media Segment Formats . . . . . . . . . . . . . 6 | 3.1. Supported Media Segment Formats . . . . . . . . . . . . . 5 | |||
| 3.2. MPEG-2 Transport Streams . . . . . . . . . . . . . . . . 7 | 3.2. MPEG-2 Transport Streams . . . . . . . . . . . . . . . . 5 | |||
| 3.3. Fragmented MPEG-4 . . . . . . . . . . . . . . . . . . . . 7 | 3.3. Fragmented MPEG-4 . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.4. Packed Audio . . . . . . . . . . . . . . . . . . . . . . 8 | 3.4. Packed Audio . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.5. WebVTT . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 3.5. WebVTT . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Playlists . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 4. Playlists . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.1. Definition of a Playlist . . . . . . . . . . . . . . . . 9 | 4.1. Definition of a Playlist . . . . . . . . . . . . . . . . 8 | |||
| 4.2. Attribute Lists . . . . . . . . . . . . . . . . . . . . . 10 | 4.2. Attribute Lists . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 4.3. Playlist Tags . . . . . . . . . . . . . . . . . . . . . . 12 | 4.3. Playlist Tags . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 4.3.1. Basic Tags . . . . . . . . . . . . . . . . . . . . . 12 | 4.3.1. Basic Tags . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 4.3.1.1. EXTM3U . . . . . . . . . . . . . . . . . . . . . 12 | 4.3.2. Media Segment Tags . . . . . . . . . . . . . . . . . 11 | |||
| 4.3.1.2. EXT-X-VERSION . . . . . . . . . . . . . . . . . . 12 | 4.3.3. Media Playlist Tags . . . . . . . . . . . . . . . . . 20 | |||
| 4.3.2. Media Segment Tags . . . . . . . . . . . . . . . . . 13 | 4.3.4. Master Playlist Tags . . . . . . . . . . . . . . . . 23 | |||
| 4.3.2.1. EXTINF . . . . . . . . . . . . . . . . . . . . . 13 | 4.3.5. Media or Master Playlist Tags . . . . . . . . . . . . 33 | |||
| 4.3.2.2. EXT-X-BYTERANGE . . . . . . . . . . . . . . . . . 13 | 5. Key files . . . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 4.3.2.3. EXT-X-DISCONTINUITY . . . . . . . . . . . . . . . 14 | 5.1. Structure of Key files . . . . . . . . . . . . . . . . . 35 | |||
| 4.3.2.4. EXT-X-KEY . . . . . . . . . . . . . . . . . . . . 14 | 5.2. IV for [AES_128] . . . . . . . . . . . . . . . . . . . . 35 | |||
| 4.3.2.5. EXT-X-MAP . . . . . . . . . . . . . . . . . . . . 16 | 6. Client/Server Responsibilities . . . . . . . . . . . . . . . 35 | |||
| 4.3.2.6. EXT-X-PROGRAM-DATE-TIME . . . . . . . . . . . . . 17 | 6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 4.3.2.7. EXT-X-DATERANGE . . . . . . . . . . . . . . . . . 17 | 6.2. Server Responsibilities . . . . . . . . . . . . . . . . . 35 | |||
| 4.3.2.7.1. Mapping SCTE-35 into EXT-X-DATERANGE . . . . 19 | 6.2.1. General Server Responsibilities . . . . . . . . . . . 35 | |||
| 4.3.3. Media Playlist Tags . . . . . . . . . . . . . . . . . 21 | 6.2.2. Live Playlists . . . . . . . . . . . . . . . . . . . 38 | |||
| 4.3.3.1. EXT-X-TARGETDURATION . . . . . . . . . . . . . . 21 | 6.2.3. Encrypting Media Segments . . . . . . . . . . . . . . 39 | |||
| 4.3.3.2. EXT-X-MEDIA-SEQUENCE . . . . . . . . . . . . . . 22 | 6.2.4. Providing Variant Streams . . . . . . . . . . . . . . 40 | |||
| 4.3.3.3. EXT-X-DISCONTINUITY-SEQUENCE . . . . . . . . . . 22 | 6.3. Client Responsibilities . . . . . . . . . . . . . . . . . 41 | |||
| 4.3.3.4. EXT-X-ENDLIST . . . . . . . . . . . . . . . . . . 23 | 6.3.1. General Client Responsibilities . . . . . . . . . . . 41 | |||
| 4.3.3.5. EXT-X-PLAYLIST-TYPE . . . . . . . . . . . . . . . 23 | 6.3.2. Loading the Media Playlist file . . . . . . . . . . . 42 | |||
| 4.3.3.6. EXT-X-I-FRAMES-ONLY . . . . . . . . . . . . . . . 23 | 6.3.3. Playing the Media Playlist file . . . . . . . . . . . 43 | |||
| 4.3.4. Master Playlist Tags . . . . . . . . . . . . . . . . 24 | 6.3.4. Reloading the Media Playlist file . . . . . . . . . . 44 | |||
| 4.3.4.1. EXT-X-MEDIA . . . . . . . . . . . . . . . . . . . 24 | 6.3.5. Determining the next segment to load . . . . . . . . 45 | |||
| 4.3.4.1.1. Rendition Groups . . . . . . . . . . . . . . 27 | 6.3.6. Decrypting encrypted Media Segments . . . . . . . . . 45 | |||
| 4.3.4.2. EXT-X-STREAM-INF . . . . . . . . . . . . . . . . 28 | 7. Protocol version compatibility . . . . . . . . . . . . . . . 46 | |||
| 4.3.4.2.1. Alternative Renditions . . . . . . . . . . . 31 | 8. Playlist Examples . . . . . . . . . . . . . . . . . . . . . . 47 | |||
| 4.3.4.3. EXT-X-I-FRAME-STREAM-INF . . . . . . . . . . . . 32 | 8.1. Simple Media Playlist . . . . . . . . . . . . . . . . . . 47 | |||
| 4.3.4.4. EXT-X-SESSION-DATA . . . . . . . . . . . . . . . 33 | 8.2. Live Media Playlist, using HTTPS . . . . . . . . . . . . 47 | |||
| 4.3.4.5. EXT-X-SESSION-KEY . . . . . . . . . . . . . . . . 34 | 8.3. Playlist with encrypted Media Segments . . . . . . . . . 48 | |||
| 4.3.5. Media or Master Playlist Tags . . . . . . . . . . . . 34 | 8.4. Master Playlist . . . . . . . . . . . . . . . . . . . . . 48 | |||
| 4.3.5.1. EXT-X-INDEPENDENT-SEGMENTS . . . . . . . . . . . 34 | 8.5. Master Playlist with I-Frames . . . . . . . . . . . . . . 49 | |||
| 4.3.5.2. EXT-X-START . . . . . . . . . . . . . . . . . . . 35 | 8.6. Master Playlist with Alternative audio . . . . . . . . . 49 | |||
| 5. Key files . . . . . . . . . . . . . . . . . . . . . . . . . . 36 | 8.7. Master Playlist with Alternative video . . . . . . . . . 49 | |||
| 5.1. Structure of Key files . . . . . . . . . . . . . . . . . 36 | 8.8. Session Data in a Master Playlist . . . . . . . . . . . . 50 | |||
| 5.2. IV for [AES_128] . . . . . . . . . . . . . . . . . . . . 36 | ||||
| 6. Client/Server Responsibilities . . . . . . . . . . . . . . . 36 | ||||
| 6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 36 | ||||
| 6.2. Server Responsibilities . . . . . . . . . . . . . . . . . 36 | ||||
| 6.2.1. General Server Responsibilities . . . . . . . . . . . 36 | ||||
| 6.2.2. Live Playlists . . . . . . . . . . . . . . . . . . . 39 | ||||
| 6.2.3. Encrypting Media Segments . . . . . . . . . . . . . . 40 | ||||
| 6.2.4. Providing Variant Streams . . . . . . . . . . . . . . 41 | ||||
| 6.3. Client Responsibilities . . . . . . . . . . . . . . . . . 42 | ||||
| 6.3.1. General Client Responsibilities . . . . . . . . . . . 42 | ||||
| 6.3.2. Loading the Media Playlist file . . . . . . . . . . . 43 | ||||
| 6.3.3. Playing the Media Playlist file . . . . . . . . . . . 44 | ||||
| 6.3.4. Reloading the Media Playlist file . . . . . . . . . . 45 | ||||
| 6.3.5. Determining the next segment to load . . . . . . . . 46 | ||||
| 6.3.6. Decrypting encrypted Media Segments . . . . . . . . . 46 | ||||
| 7. Protocol version compatibility . . . . . . . . . . . . . . . 47 | ||||
| 8. Playlist Examples . . . . . . . . . . . . . . . . . . . . . . 48 | ||||
| 8.1. Simple Media Playlist . . . . . . . . . . . . . . . . . . 48 | ||||
| 8.2. Live Media Playlist, using HTTPS . . . . . . . . . . . . 48 | ||||
| 8.3. Playlist with encrypted Media Segments . . . . . . . . . 49 | ||||
| 8.4. Master Playlist . . . . . . . . . . . . . . . . . . . . . 49 | ||||
| 8.5. Master Playlist with I-Frames . . . . . . . . . . . . . . 50 | ||||
| 8.6. Master Playlist with Alternative audio . . . . . . . . . 50 | ||||
| 8.7. Master Playlist with Alternative video . . . . . . . . . 50 | ||||
| 8.8. Session Data in a Master Playlist . . . . . . . . . . . . 51 | ||||
| 8.9. CHARACTERISTICS attribute containing multiple | 8.9. CHARACTERISTICS attribute containing multiple | |||
| characteristics . . . . . . . . . . . . . . . . . . . . . 52 | characteristics . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 8.10. EXT-X-DATERANGE carrying SCTE-35 tags . . . . . . . . . . 52 | ||||
| 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 52 | 8.10. EXT-X-DATERANGE carrying SCTE-35 tags . . . . . . . . . . 51 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 52 | 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 11. Security Considerations . . . . . . . . . . . . . . . . . . . 53 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 51 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 54 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 52 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 54 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 57 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 53 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 58 | 12.2. Informative References . . . . . . . . . . . . . . . . . 56 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 57 | ||||
| 1. Introduction to HTTP Live Streaming | 1. Introduction to HTTP Live Streaming | |||
| HTTP Live Streaming provides a reliable, cost-effective means of | HTTP Live Streaming provides a reliable, cost-effective means of | |||
| delivering continuous and long-form video over the Internet. It | delivering continuous and long-form video over the Internet. It | |||
| allows a receiver to adapt the bit rate of the media to the current | allows a receiver to adapt the bit rate of the media to the current | |||
| network conditions in order to maintain uninterrupted playback at the | network conditions in order to maintain uninterrupted playback at the | |||
| best possible quality. It supports interstitial content boundaries. | best possible quality. It supports interstitial content boundaries. | |||
| It provides a flexible framework for media encryption. It can | It provides a flexible framework for media encryption. It can | |||
| efficiently offer multiple renditions of the same content, such as | efficiently offer multiple renditions of the same content, such as | |||
| skipping to change at page 17, line 9 | skipping to change at page 16, line 4 | |||
| The value is a quoted-string specifying a byte range into the | The value is a quoted-string specifying a byte range into the | |||
| resource identified by the URI attribute. This range SHOULD | resource identified by the URI attribute. This range SHOULD | |||
| contain only the Media Initialization Section. The format of the | contain only the Media Initialization Section. The format of the | |||
| byte range is described in Section 4.3.2.2. This attribute is | byte range is described in Section 4.3.2.2. This attribute is | |||
| OPTIONAL; if it is not present, the byte range is the entire | OPTIONAL; if it is not present, the byte range is the entire | |||
| resource indicated by the URI. | resource indicated by the URI. | |||
| An EXT-X-MAP tag SHOULD be supplied for Media Segments in Playlists | An EXT-X-MAP tag SHOULD be supplied for Media Segments in Playlists | |||
| with the EXT-X-I-FRAMES-ONLY tag when the first Media Segment (i.e., | with the EXT-X-I-FRAMES-ONLY tag when the first Media Segment (i.e., | |||
| I-frame) in the Playlist (or the first segment following an | I-frame) in the Playlist (or the first segment following an EXT- | |||
| EXT-X-DISCONTINUITY tag) does not immediately follow the Media | X-DISCONTINUITY tag) does not immediately follow the Media | |||
| Initialization Section at the beginning of its resource. | Initialization Section at the beginning of its resource. | |||
| Use of the EXT-X-MAP tag in a Media Playlist that contains the | Use of the EXT-X-MAP tag in a Media Playlist that contains the EXT- | |||
| EXT-X-I-FRAMES-ONLY tag REQUIRES a compatibility version number of 5 | X-I-FRAMES-ONLY tag REQUIRES a compatibility version number of 5 or | |||
| or greater. Use of the EXT-X-MAP tag in a Media Playlist that DOES | greater. Use of the EXT-X-MAP tag in a Media Playlist that DOES NOT | |||
| NOT contain the EXT-X-I-FRAMES-ONLY tag REQUIRES a compatibility | contain the EXT-X-I-FRAMES-ONLY tag REQUIRES a compatibility version | |||
| version number of 6 or greater. | number of 6 or greater. | |||
| 4.3.2.6. EXT-X-PROGRAM-DATE-TIME | 4.3.2.6. EXT-X-PROGRAM-DATE-TIME | |||
| The EXT-X-PROGRAM-DATE-TIME tag associates the first sample of a | The EXT-X-PROGRAM-DATE-TIME tag associates the first sample of a | |||
| Media Segment with an absolute date and/or time. It applies only to | Media Segment with an absolute date and/or time. It applies only to | |||
| the next Media Segment. | the next Media Segment. | |||
| The date/time representation is ISO/IEC 8601:2004 [ISO_8601] and | The date/time representation is ISO/IEC 8601:2004 [ISO_8601] and | |||
| SHOULD indicate a time zone and fractional parts of seconds: | SHOULD indicate a time zone and fractional parts of seconds: | |||
| skipping to change at page 21, line 15 | skipping to change at page 20, line 8 | |||
| The END-DATE of an EXT-X-DATERANGE tag containing a SCTE35-IN | The END-DATE of an EXT-X-DATERANGE tag containing a SCTE35-IN | |||
| attribute MUST be the actual (not planned) program date and time of | attribute MUST be the actual (not planned) program date and time of | |||
| that in-point. | that in-point. | |||
| If the actual end date and time is not known when a SCTE35-OUT | If the actual end date and time is not known when a SCTE35-OUT | |||
| attribute is added to the Playlist, the DURATION attribute and the | attribute is added to the Playlist, the DURATION attribute and the | |||
| END-TIME attribute MUST NOT be present; the actual end date of the | END-TIME attribute MUST NOT be present; the actual end date of the | |||
| splice SHOULD be signaled by another EXT-X-DATERANGE tag once it has | splice SHOULD be signaled by another EXT-X-DATERANGE tag once it has | |||
| been established. | been established. | |||
| A canceled splice SHOULD NOT appear in the Playlist as an | A canceled splice SHOULD NOT appear in the Playlist as an EXT- | |||
| EXT-X-DATERANGE tag. | X-DATERANGE tag. | |||
| An EXT-X-DATERANGE tag announcing a splice SHOULD be added to a | An EXT-X-DATERANGE tag announcing a splice SHOULD be added to a | |||
| Playlist at the same time as the last pre-splice Media Segment. | Playlist at the same time as the last pre-splice Media Segment. | |||
| The ID attribute of an EXT-X-DATERANGE tag MAY contain a | The ID attribute of an EXT-X-DATERANGE tag MAY contain a | |||
| splice_event_id and/or a segmentation_event_id, but it MUST be unique | splice_event_id and/or a segmentation_event_id, but it MUST be unique | |||
| in the the Playlist. If there is a possibility that a SCTE-35 id | in the the Playlist. If there is a possibility that a SCTE-35 id | |||
| will be reused, the ID attribute value MUST include disambiguation, | will be reused, the ID attribute value MUST include disambiguation, | |||
| such as a date or sequence number. | such as a date or sequence number. | |||
| skipping to change at page 22, line 49 | skipping to change at page 21, line 39 | |||
| where number is a decimal-integer. | where number is a decimal-integer. | |||
| If the Media Playlist does not contain an EXT-X-DISCONTINUITY- | If the Media Playlist does not contain an EXT-X-DISCONTINUITY- | |||
| SEQUENCE tag, then the Discontinuity Sequence Number of the first | SEQUENCE tag, then the Discontinuity Sequence Number of the first | |||
| Media Segment in the Playlist SHALL be considered to be 0. | Media Segment in the Playlist SHALL be considered to be 0. | |||
| The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before the first | The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before the first | |||
| Media Segment in the Playlist. | Media Segment in the Playlist. | |||
| The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before any | The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before any EXT- | |||
| EXT-X-DISCONTINUITY tag. | X-DISCONTINUITY tag. | |||
| See Section 6.2.1 and Section 6.2.2 for more information about | See Section 6.2.1 and Section 6.2.2 for more information about | |||
| setting the value of the EXT-X-DISCONTINUITY-SEQUENCE tag. | setting the value of the EXT-X-DISCONTINUITY-SEQUENCE tag. | |||
| 4.3.3.4. EXT-X-ENDLIST | 4.3.3.4. EXT-X-ENDLIST | |||
| The EXT-X-ENDLIST tag indicates that no more Media Segments will be | The EXT-X-ENDLIST tag indicates that no more Media Segments will be | |||
| added to the Media Playlist file. It MAY occur anywhere in the Media | added to the Media Playlist file. It MAY occur anywhere in the Media | |||
| Playlist file. Its format is: | Playlist file. Its format is: | |||
| skipping to change at page 24, line 8 | skipping to change at page 22, line 46 | |||
| #EXT-X-I-FRAMES-ONLY | #EXT-X-I-FRAMES-ONLY | |||
| In a Playlist with the EXT-X-I-FRAMES-ONLY tag, the Media Segment | In a Playlist with the EXT-X-I-FRAMES-ONLY tag, the Media Segment | |||
| duration (EXTINF tag value) is the time between the presentation time | duration (EXTINF tag value) is the time between the presentation time | |||
| of the I-frame in the Media Segment and the presentation time of the | of the I-frame in the Media Segment and the presentation time of the | |||
| next I-frame in the Playlist, or the end of the presentation if it is | next I-frame in the Playlist, or the end of the presentation if it is | |||
| the last I-frame in the Playlist. | the last I-frame in the Playlist. | |||
| Media resources containing I-frame segments MUST begin with either a | Media resources containing I-frame segments MUST begin with either a | |||
| Media Initialization Section (Section 3) or be accompanied by an | Media Initialization Section (Section 3) or be accompanied by an EXT- | |||
| EXT-X-MAP tag indicating the Media Initialization Section so that | X-MAP tag indicating the Media Initialization Section so that clients | |||
| clients can load and decode I-frame segments in any order. The byte | can load and decode I-frame segments in any order. The byte range of | |||
| range of an I-frame segment with an EXT-X-BYTERANGE tag applied to it | an I-frame segment with an EXT-X-BYTERANGE tag applied to it | |||
| (Section 4.3.2.2) MUST NOT include its Media Initialization Section; | (Section 4.3.2.2) MUST NOT include its Media Initialization Section; | |||
| clients can assume that the Media Initialization Section is defined | clients can assume that the Media Initialization Section is defined | |||
| by EXT-X-MAP tag, or is located from the start of the resource to the | by EXT-X-MAP tag, or is located from the start of the resource to the | |||
| offset of the first I-frame segment in that resource. | offset of the first I-frame segment in that resource. | |||
| Use of the EXT-X-I-FRAMES-ONLY REQUIRES a compatibility version | Use of the EXT-X-I-FRAMES-ONLY REQUIRES a compatibility version | |||
| number of 4 or greater. | number of 4 or greater. | |||
| 4.3.4. Master Playlist Tags | 4.3.4. Master Playlist Tags | |||
| skipping to change at page 28, line 20 | skipping to change at page 27, line 12 | |||
| corresponding member MUST have identical attributes with the | corresponding member MUST have identical attributes with the | |||
| exception of the URI and CHANNELS attributes. | exception of the URI and CHANNELS attributes. | |||
| Each member in a Group of Renditions MAY have a different sample | Each member in a Group of Renditions MAY have a different sample | |||
| format. For example, an English rendition can be encoded with AC-3 | format. For example, an English rendition can be encoded with AC-3 | |||
| 5.1 while a Spanish rendition is encoded with AAC stereo. However, | 5.1 while a Spanish rendition is encoded with AAC stereo. However, | |||
| any EXT-X-STREAM-INF (Section 4.3.4.2) tag or EXT-X-I-FRAME-STREAM- | any EXT-X-STREAM-INF (Section 4.3.4.2) tag or EXT-X-I-FRAME-STREAM- | |||
| INF (Section 4.3.4.3) tag which references such a Group MUST have a | INF (Section 4.3.4.3) tag which references such a Group MUST have a | |||
| CODECS attribute that lists every sample format present in any | CODECS attribute that lists every sample format present in any | |||
| Rendition in the Group, or client playback failures can occur. In | Rendition in the Group, or client playback failures can occur. In | |||
| the example above, the CODECS attribute would include | the example above, the CODECS attribute would include "ac- | |||
| "ac-3,mp4a.40.2". | 3,mp4a.40.2". | |||
| 4.3.4.2. EXT-X-STREAM-INF | 4.3.4.2. EXT-X-STREAM-INF | |||
| The EXT-X-STREAM-INF tag specifies a Variant Stream, which is a set | The EXT-X-STREAM-INF tag specifies a Variant Stream, which is a set | |||
| of Renditions which can be combined to play the presentation. The | of Renditions which can be combined to play the presentation. The | |||
| attributes of the tag provide information about the Variant Stream. | attributes of the tag provide information about the Variant Stream. | |||
| The URI line that follows the EXT-X-STREAM-INF tag specifies a Media | The URI line that follows the EXT-X-STREAM-INF tag specifies a Media | |||
| Playlist that carries a Rendition of the Variant Stream. The URI | Playlist that carries a Rendition of the Variant Stream. The URI | |||
| line is REQUIRED. Clients that do not support multiple video | line is REQUIRED. Clients that do not support multiple video | |||
| skipping to change at page 31, line 31 | skipping to change at page 30, line 21 | |||
| CLOSED-CAPTIONS | CLOSED-CAPTIONS | |||
| The value can be either a quoted-string or an enumerated-string | The value can be either a quoted-string or an enumerated-string | |||
| with the value NONE. If the value is a quoted-string, it MUST | with the value NONE. If the value is a quoted-string, it MUST | |||
| match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag | match the value of the GROUP-ID attribute of an EXT-X-MEDIA tag | |||
| elsewhere in the Playlist whose TYPE attribute is CLOSED-CAPTIONS, | elsewhere in the Playlist whose TYPE attribute is CLOSED-CAPTIONS, | |||
| and indicates the set of closed-caption Renditions that can be | and indicates the set of closed-caption Renditions that can be | |||
| used when playing the presentation. See Section 4.3.4.2.1. | used when playing the presentation. See Section 4.3.4.2.1. | |||
| If the value is the enumerated-string value NONE, all EXT-X | If the value is the enumerated-string value NONE, all EXT-X - | |||
| -STREAM-INF tags MUST have this attribute with a value of NONE, | STREAM-INF tags MUST have this attribute with a value of NONE, | |||
| indicating that there are no closed captions in any Variant Stream | indicating that there are no closed captions in any Variant Stream | |||
| in the Master Playlist. Having closed captions in one Variant | in the Master Playlist. Having closed captions in one Variant | |||
| Stream but not another can trigger playback inconsistencies. | Stream but not another can trigger playback inconsistencies. | |||
| The CLOSED-CAPTIONS attribute is OPTIONAL. | The CLOSED-CAPTIONS attribute is OPTIONAL. | |||
| 4.3.4.2.1. Alternative Renditions | 4.3.4.2.1. Alternative Renditions | |||
| When an EXT-X-STREAM-INF tag contains an AUDIO, VIDEO, SUBTITLES, or | When an EXT-X-STREAM-INF tag contains an AUDIO, VIDEO, SUBTITLES, or | |||
| CLOSED-CAPTIONS attribute, it indicates that alternative Renditions | CLOSED-CAPTIONS attribute, it indicates that alternative Renditions | |||
| of the content are available for playback of that Variant Stream. | of the content are available for playback of that Variant Stream. | |||
| When defining alternative Renditions, the following constraints MUST | When defining alternative Renditions, the following constraints MUST | |||
| be met to prevent client playback errors: | be met to prevent client playback errors: | |||
| o All playable combinations of Renditions associated with an EXT-X | o All playable combinations of Renditions associated with an EXT-X - | |||
| -STREAM-INF tag MUST have an aggregate bandwidth less than or | STREAM-INF tag MUST have an aggregate bandwidth less than or equal | |||
| equal to the BANDWIDTH attribute of the EXT-X-STREAM-INF tag. | to the BANDWIDTH attribute of the EXT-X-STREAM-INF tag. | |||
| o If an EXT-X-STREAM-INF tag contains a RESOLUTION attribute and a | o If an EXT-X-STREAM-INF tag contains a RESOLUTION attribute and a | |||
| VIDEO attribute, then every alternative video Rendition MUST have | VIDEO attribute, then every alternative video Rendition MUST have | |||
| an optimal display resolution matching the value of the RESOLUTION | an optimal display resolution matching the value of the RESOLUTION | |||
| attribute. | attribute. | |||
| o Every alternative Rendition associated with an EXT-X-STREAM-INF | o Every alternative Rendition associated with an EXT-X-STREAM-INF | |||
| tag MUST meet the constraints for a Variant Stream described in | tag MUST meet the constraints for a Variant Stream described in | |||
| Section 6.2.4. | Section 6.2.4. | |||
| The URI attribute of the EXT-X-MEDIA tag is REQUIRED if the media | The URI attribute of the EXT-X-MEDIA tag is REQUIRED if the media | |||
| type is SUBTITLES, but OPTIONAL if the media type is VIDEO or AUDIO. | type is SUBTITLES, but OPTIONAL if the media type is VIDEO or AUDIO. | |||
| If the media type is VIDEO or AUDIO, a missing URI attribute | If the media type is VIDEO or AUDIO, a missing URI attribute | |||
| indicates that the media data for this Rendition is included in the | indicates that the media data for this Rendition is included in the | |||
| Media Playlist of any EXT-X-STREAM-INF tag referencing this | Media Playlist of any EXT-X-STREAM-INF tag referencing this EXT- | |||
| EXT-X-MEDIA tag. If the media TYPE is AUDIO and the URI attribute is | X-MEDIA tag. If the media TYPE is AUDIO and the URI attribute is | |||
| missing, clients MUST assume that the audio data for this Rendition | missing, clients MUST assume that the audio data for this Rendition | |||
| is present in every video Rendition specified by the EXT-X-STREAM-INF | is present in every video Rendition specified by the EXT-X-STREAM-INF | |||
| tag. | tag. | |||
| The URI attribute of the EXT-X-MEDIA tag MUST NOT be included if the | The URI attribute of the EXT-X-MEDIA tag MUST NOT be included if the | |||
| media type is CLOSED-CAPTIONS. | media type is CLOSED-CAPTIONS. | |||
| 4.3.4.3. EXT-X-I-FRAME-STREAM-INF | 4.3.4.3. EXT-X-I-FRAME-STREAM-INF | |||
| The EXT-X-I-FRAME-STREAM-INF tag identifies a Media Playlist file | The EXT-X-I-FRAME-STREAM-INF tag identifies a Media Playlist file | |||
| skipping to change at page 33, line 52 | skipping to change at page 32, line 47 | |||
| LANGUAGE | LANGUAGE | |||
| The value is a quoted-string containing a language tag [RFC5646] | The value is a quoted-string containing a language tag [RFC5646] | |||
| that identifies the language of the VALUE. This attribute is | that identifies the language of the VALUE. This attribute is | |||
| OPTIONAL. | OPTIONAL. | |||
| Each EXT-X-SESSION-DATA tag MUST contain either a VALUE or URI | Each EXT-X-SESSION-DATA tag MUST contain either a VALUE or URI | |||
| attribute, but not both. | attribute, but not both. | |||
| A Playlist MAY contain multiple EXT-X-SESSION-DATA tags with the same | A Playlist MAY contain multiple EXT-X-SESSION-DATA tags with the same | |||
| DATA-ID attribute. A Playlist MUST NOT contain more than one EXT-X | DATA-ID attribute. A Playlist MUST NOT contain more than one EXT-X - | |||
| -SESSION-DATA tag with the same DATA-ID attribute and the same | SESSION-DATA tag with the same DATA-ID attribute and the same | |||
| LANGUAGE attribute. | LANGUAGE attribute. | |||
| 4.3.4.5. EXT-X-SESSION-KEY | 4.3.4.5. EXT-X-SESSION-KEY | |||
| The EXT-X-SESSION-KEY tag allows encryption keys from Media Playlists | The EXT-X-SESSION-KEY tag allows encryption keys from Media Playlists | |||
| to be specified in a Master Playlist. This allows the client to | to be specified in a Master Playlist. This allows the client to | |||
| preload these keys without having to read the Media Playlist(s) | preload these keys without having to read the Media Playlist(s) | |||
| first. | first. | |||
| Its format is: | Its format is: | |||
| #EXT-X-SESSION-KEY:<attribute-list> | #EXT-X-SESSION-KEY:<attribute-list> | |||
| All attributes defined for the EXT-X-KEY tag (Section 4.3.2.4) are | All attributes defined for the EXT-X-KEY tag (Section 4.3.2.4) are | |||
| also defined for the EXT-X-SESSION-KEY, except that the value of the | also defined for the EXT-X-SESSION-KEY, except that the value of the | |||
| METHOD attribute MUST NOT be NONE. If an EXT-X-SESSION-KEY is used, | METHOD attribute MUST NOT be NONE. If an EXT-X-SESSION-KEY is used, | |||
| the values of the METHOD, KEYFORMAT and KEYFORMATVERSIONS attributes | the values of the METHOD, KEYFORMAT and KEYFORMATVERSIONS attributes | |||
| MUST match any EXT-X-KEY with the same URI value. | MUST match any EXT-X-KEY with the same URI value. | |||
| EXT-X-SESSION-KEY tags SHOULD be added if multiple Variant Streams or | EXT-X-SESSION-KEY tags SHOULD be added if multiple Variant Streams or | |||
| Renditions use the same encryption keys and formats. A EXT-X | Renditions use the same encryption keys and formats. A EXT-X - | |||
| -SESSION-KEY tag is not associated with any particular Media | SESSION-KEY tag is not associated with any particular Media Playlist. | |||
| Playlist. | ||||
| A Master Playlist MUST NOT contain more than one EXT-X-SESSION-KEY | A Master Playlist MUST NOT contain more than one EXT-X-SESSION-KEY | |||
| tag with the same METHOD, URI, IV, KEYFORMAT, and KEYFORMATVERSIONS | tag with the same METHOD, URI, IV, KEYFORMAT, and KEYFORMATVERSIONS | |||
| attribute values. | attribute values. | |||
| The EXT-X-SESSION-KEY tag is optional. | The EXT-X-SESSION-KEY tag is optional. | |||
| 4.3.5. Media or Master Playlist Tags | 4.3.5. Media or Master Playlist Tags | |||
| The tags in this section can appear in either Master Playlists or | The tags in this section can appear in either Master Playlists or | |||
| skipping to change at page 36, line 13 | skipping to change at page 35, line 13 | |||
| If it is missing, its value should be treated as NO. | If it is missing, its value should be treated as NO. | |||
| 5. Key files | 5. Key files | |||
| 5.1. Structure of Key files | 5.1. Structure of Key files | |||
| An EXT-X-KEY tag with a URI attribute identifies a Key file. A Key | An EXT-X-KEY tag with a URI attribute identifies a Key file. A Key | |||
| file contains a cipher key that can decrypt Media Segments in the | file contains a cipher key that can decrypt Media Segments in the | |||
| Playlist. | Playlist. | |||
| [AES_128] encryption uses 16-octet keys. If the KEYFORMAT of an | [AES_128] encryption uses 16-octet keys. If the KEYFORMAT of an EXT- | |||
| EXT-X-KEY tag is "identity", the Key file is a single packed array of | X-KEY tag is "identity", the Key file is a single packed array of 16 | |||
| 16 octets in binary format. | octets in binary format. | |||
| 5.2. IV for [AES_128] | 5.2. IV for [AES_128] | |||
| [AES_128] REQUIRES the same 16-octet Initialization Vector (IV) to be | [AES_128] REQUIRES the same 16-octet Initialization Vector (IV) to be | |||
| supplied when encrypting and decrypting. Varying this IV increases | supplied when encrypting and decrypting. Varying this IV increases | |||
| the strength of the cipher. | the strength of the cipher. | |||
| An IV attribute on an EXT-X-KEY tag with a KEYFORMAT of "identity" | An IV attribute on an EXT-X-KEY tag with a KEYFORMAT of "identity" | |||
| specifies an Initialization Vector that can be used when decrypting | specifies an Initialization Vector that can be used when decrypting | |||
| Media Segments encrypted with that Key file. IV values for AES-128 | Media Segments encrypted with that Key file. IV values for AES-128 | |||
| skipping to change at page 37, line 43 | skipping to change at page 36, line 43 | |||
| of view of the clients, or playback errors MAY occur. | of view of the clients, or playback errors MAY occur. | |||
| The server MUST NOT change the Media Playlist file, except to: | The server MUST NOT change the Media Playlist file, except to: | |||
| Append lines to it (Section 6.2.1). | Append lines to it (Section 6.2.1). | |||
| Remove Media Segment URIs from the Playlist in the order that they | Remove Media Segment URIs from the Playlist in the order that they | |||
| appear, along with any tags that apply only to those segments | appear, along with any tags that apply only to those segments | |||
| (Section 6.2.2). | (Section 6.2.2). | |||
| Increment the value of the EXT-X-MEDIA-SEQUENCE or EXT-X | Increment the value of the EXT-X-MEDIA-SEQUENCE or EXT-X - | |||
| -DISCONTINUITY-SEQUENCE tags (Section 6.2.2). | DISCONTINUITY-SEQUENCE tags (Section 6.2.2). | |||
| Add an EXT-X-ENDLIST tag to the Playlist (Section 6.2.1). | Add an EXT-X-ENDLIST tag to the Playlist (Section 6.2.1). | |||
| A Media Playlist has further constraints on its updates if it | A Media Playlist has further constraints on its updates if it | |||
| contains an EXT-X-PLAYLIST-TYPE tag. An EXT-X-PLAYLIST-TYPE tag with | contains an EXT-X-PLAYLIST-TYPE tag. An EXT-X-PLAYLIST-TYPE tag with | |||
| a value of VOD indicates that the Playlist file MUST NOT change. An | a value of VOD indicates that the Playlist file MUST NOT change. An | |||
| EXT-X-PLAYLIST-TYPE tag with a value of EVENT indicates that the | EXT-X-PLAYLIST-TYPE tag with a value of EVENT indicates that the | |||
| server MUST NOT change or delete any part of the Playlist file; it | server MUST NOT change or delete any part of the Playlist file; it | |||
| MAY append lines to it. | MAY append lines to it. | |||
| skipping to change at page 38, line 18 | skipping to change at page 37, line 18 | |||
| NOT change. A typical target duration is 10 seconds. | NOT change. A typical target duration is 10 seconds. | |||
| Playlist changes other than those allowed here can trigger playback | Playlist changes other than those allowed here can trigger playback | |||
| errors and inconsistent client behavior. | errors and inconsistent client behavior. | |||
| Each Media Segment in a Media Playlist has an integer Discontinuity | Each Media Segment in a Media Playlist has an integer Discontinuity | |||
| Sequence Number. The Discontinuity Sequence Number can be used in | Sequence Number. The Discontinuity Sequence Number can be used in | |||
| addition to the timestamps within the media to synchronize Media | addition to the timestamps within the media to synchronize Media | |||
| Segments across different Renditions. | Segments across different Renditions. | |||
| A segment's Discontinuity Sequence Number is the value of the EXT-X | A segment's Discontinuity Sequence Number is the value of the EXT-X - | |||
| -DISCONTINUITY-SEQUENCE tag (or zero if none) plus the number of | DISCONTINUITY-SEQUENCE tag (or zero if none) plus the number of EXT- | |||
| EXT-X-DISCONTINUITY tags in the Playlist preceding the URI line of | X-DISCONTINUITY tags in the Playlist preceding the URI line of the | |||
| the segment. | segment. | |||
| The server MAY associate an absolute date and time with a Media | The server MAY associate an absolute date and time with a Media | |||
| Segment by applying an EXT-X-PROGRAM-DATE-TIME tag to it. This | Segment by applying an EXT-X-PROGRAM-DATE-TIME tag to it. This | |||
| defines an informative mapping of the (wall-clock) date and time | defines an informative mapping of the (wall-clock) date and time | |||
| specified by the tag to the first media timestamp in the segment, | specified by the tag to the first media timestamp in the segment, | |||
| which may be used as a basis for seeking, for display, or for other | which may be used as a basis for seeking, for display, or for other | |||
| purposes. If a server provides this mapping, it SHOULD apply an | purposes. If a server provides this mapping, it SHOULD apply an EXT- | |||
| EXT-X-PROGRAM-DATE-TIME tag to every segment that has an | X-PROGRAM-DATE-TIME tag to every segment that has an EXT- | |||
| EXT-X-DISCONTINUITY tag applied to it. | X-DISCONTINUITY tag applied to it. | |||
| The Server MUST NOT add any EXT-X-PROGRAM-DATE-TIME tag to a Playlist | The Server MUST NOT add any EXT-X-PROGRAM-DATE-TIME tag to a Playlist | |||
| that would cause the mapping between program date and Media Segment | that would cause the mapping between program date and Media Segment | |||
| to become ambiguous. | to become ambiguous. | |||
| The server MUST NOT remove an EXT-X-DATERANGE tag from a Playlist if | The server MUST NOT remove an EXT-X-DATERANGE tag from a Playlist if | |||
| any date in the range maps to a Media Segment in the Playlist. | any date in the range maps to a Media Segment in the Playlist. | |||
| The server MUST NOT reuse the ID attribute value of an | The server MUST NOT reuse the ID attribute value of an EXT- | |||
| EXT-X-DATERANGE tag for any new Date Range in the same Playlist. | X-DATERANGE tag for any new Date Range in the same Playlist. | |||
| Once the Following Range of a Date Range with an END-ON-NEXT=YES | Once the Following Range of a Date Range with an END-ON-NEXT=YES | |||
| attribute is added to a Playlist, the Server MUST NOT subsequently | attribute is added to a Playlist, the Server MUST NOT subsequently | |||
| add a Date Range with the same CLASS attribute whose START-DATE is | add a Date Range with the same CLASS attribute whose START-DATE is | |||
| between that of the END-ON-NEXT=YES range and its Following Range. | between that of the END-ON-NEXT=YES range and its Following Range. | |||
| For Date Ranges with a PLANNED-DURATION attribute, the Server SHOULD | For Date Ranges with a PLANNED-DURATION attribute, the Server SHOULD | |||
| signal the actual end of the range once it has been established. It | signal the actual end of the range once it has been established. It | |||
| can do so by adding another EXT-X-DATERANGE tag with the same ID | can do so by adding another EXT-X-DATERANGE tag with the same ID | |||
| attribute value and either a DURATION or an END-DATE attribute or, if | attribute value and either a DURATION or an END-DATE attribute or, if | |||
| skipping to change at page 39, line 31 | skipping to change at page 38, line 31 | |||
| provide a clear indication to clients that the Playlist file is no | provide a clear indication to clients that the Playlist file is no | |||
| longer available (e.g. with an HTTP 404 or 410 response). It MUST | longer available (e.g. with an HTTP 404 or 410 response). It MUST | |||
| ensure that all Media Segments in the Playlist file remain available | ensure that all Media Segments in the Playlist file remain available | |||
| to clients for at least the duration of the Playlist file at the time | to clients for at least the duration of the Playlist file at the time | |||
| of removal to prevent interruption of in-progress playback. | of removal to prevent interruption of in-progress playback. | |||
| 6.2.2. Live Playlists | 6.2.2. Live Playlists | |||
| The server MAY limit the availability of Media Segments by removing | The server MAY limit the availability of Media Segments by removing | |||
| Media Segments from the Playlist file (Section 6.2.1). If Media | Media Segments from the Playlist file (Section 6.2.1). If Media | |||
| Segments are to be removed, the Playlist file MUST contain an EXT-X | Segments are to be removed, the Playlist file MUST contain an EXT-X - | |||
| -MEDIA-SEQUENCE tag. Its value MUST be incremented by 1 for every | MEDIA-SEQUENCE tag. Its value MUST be incremented by 1 for every | |||
| Media Segment that is removed from the Playlist file; it MUST NOT | Media Segment that is removed from the Playlist file; it MUST NOT | |||
| decrease or wrap. Clients can malfunction if each Media Segment does | decrease or wrap. Clients can malfunction if each Media Segment does | |||
| not have a consistent, unique Media Sequence Number. | not have a consistent, unique Media Sequence Number. | |||
| Media Segments MUST be removed from the Playlist file in the order | Media Segments MUST be removed from the Playlist file in the order | |||
| that they appear in the Playlist; otherwise, client playback can | that they appear in the Playlist; otherwise, client playback can | |||
| malfunction. | malfunction. | |||
| The server MUST NOT remove a Media Segment from a Playlist file | The server MUST NOT remove a Media Segment from a Playlist file | |||
| without an EXT-X-ENDLIST tag if that would produce a Playlist whose | without an EXT-X-ENDLIST tag if that would produce a Playlist whose | |||
| skipping to change at page 40, line 7 | skipping to change at page 39, line 7 | |||
| When the server removes a Media Segment URI from the Playlist, the | When the server removes a Media Segment URI from the Playlist, the | |||
| corresponding Media Segment MUST remain available to clients for a | corresponding Media Segment MUST remain available to clients for a | |||
| period of time equal to the duration of the segment plus the duration | period of time equal to the duration of the segment plus the duration | |||
| of the longest Playlist file distributed by the server containing | of the longest Playlist file distributed by the server containing | |||
| that segment. Removing a Media Segment earlier than that can | that segment. Removing a Media Segment earlier than that can | |||
| interrupt in-progress playback. | interrupt in-progress playback. | |||
| If the server wishes to remove segments from a Media Playlist | If the server wishes to remove segments from a Media Playlist | |||
| containing an EXT-X-DISCONTINUITY tag, the Media Playlist MUST | containing an EXT-X-DISCONTINUITY tag, the Media Playlist MUST | |||
| contain an EXT-X-DISCONTINUITY-SEQUENCE tag. Without the EXT-X | contain an EXT-X-DISCONTINUITY-SEQUENCE tag. Without the EXT-X - | |||
| -DISCONTINUITY-SEQUENCE tag, it can be impossible for a client to | DISCONTINUITY-SEQUENCE tag, it can be impossible for a client to | |||
| locate corresponding segments between Renditions. | locate corresponding segments between Renditions. | |||
| If the server removes an EXT-X-DISCONTINUITY tag from the Media | If the server removes an EXT-X-DISCONTINUITY tag from the Media | |||
| Playlist, it MUST increment the value of the EXT-X-DISCONTINUITY- | Playlist, it MUST increment the value of the EXT-X-DISCONTINUITY- | |||
| SEQUENCE tag so that the Discontinuity Sequence Numbers of the | SEQUENCE tag so that the Discontinuity Sequence Numbers of the | |||
| segments still in the Media Playlist remain unchanged. The value of | segments still in the Media Playlist remain unchanged. The value of | |||
| the EXT-X-DISCONTINUITY-SEQUENCE tag MUST NOT decrease or wrap. | the EXT-X-DISCONTINUITY-SEQUENCE tag MUST NOT decrease or wrap. | |||
| Clients can malfunction if each Media Segment does not have a | Clients can malfunction if each Media Segment does not have a | |||
| consistent Discontinuity Sequence Number. | consistent Discontinuity Sequence Number. | |||
| skipping to change at page 40, line 50 | skipping to change at page 39, line 50 | |||
| If an encrypted Media Segment is followed by one or more unencrypted | If an encrypted Media Segment is followed by one or more unencrypted | |||
| Media Segments in the Playlist, the unencrypted Media Segments MUST | Media Segments in the Playlist, the unencrypted Media Segments MUST | |||
| have an EXT-X-KEY tag whose METHOD is NONE applied to them. | have an EXT-X-KEY tag whose METHOD is NONE applied to them. | |||
| Otherwise, the client will misinterpret those segments as encrypted. | Otherwise, the client will misinterpret those segments as encrypted. | |||
| If the encryption METHOD is AES-128 and the Playlist does not contain | If the encryption METHOD is AES-128 and the Playlist does not contain | |||
| the EXT-X-I-FRAMES-ONLY tag, AES encryption as described in | the EXT-X-I-FRAMES-ONLY tag, AES encryption as described in | |||
| Section 4.3.2.4 SHALL be applied to individual Media Segments. | Section 4.3.2.4 SHALL be applied to individual Media Segments. | |||
| If the encryption METHOD is AES-128 and the Playlist contains an | If the encryption METHOD is AES-128 and the Playlist contains an EXT- | |||
| EXT-X-I-FRAMES-ONLY tag, the entire resource MUST be encrypted using | X-I-FRAMES-ONLY tag, the entire resource MUST be encrypted using | |||
| AES-128 CBC with PKCS7 padding [RFC5652]. Encryption MAY be | AES-128 CBC with PKCS7 padding [RFC5652]. Encryption MAY be | |||
| restarted on 16-byte block boundaries, unless the first block | restarted on 16-byte block boundaries, unless the first block | |||
| contains an I-frame. The IV used for encryption MUST be either the | contains an I-frame. The IV used for encryption MUST be either the | |||
| Media Sequence Number of the Media Segment or the value of the IV | Media Sequence Number of the Media Segment or the value of the IV | |||
| attribute of the EXT-X-KEY tag, as described in Section 5.2. These | attribute of the EXT-X-KEY tag, as described in Section 5.2. These | |||
| constraints allow a client to load and decrypt individual I-frames | constraints allow a client to load and decrypt individual I-frames | |||
| specified as sub-ranges of regular encrypted Media Segments, and | specified as sub-ranges of regular encrypted Media Segments, and | |||
| their Media Initialization Sections. | their Media Initialization Sections. | |||
| If the encryption METHOD is SAMPLE-AES, media samples MAY be | If the encryption METHOD is SAMPLE-AES, media samples MAY be | |||
| skipping to change at page 42, line 18 | skipping to change at page 41, line 18 | |||
| duration. | duration. | |||
| If any Media Playlists have an EXT-X-PLAYLIST-TYPE tag, all Media | If any Media Playlists have an EXT-X-PLAYLIST-TYPE tag, all Media | |||
| Playlists MUST have the EXT-X-PLAYLIST-TYPE tag with the same | Playlists MUST have the EXT-X-PLAYLIST-TYPE tag with the same | |||
| value. | value. | |||
| If the Playlist contains an EXT-X-PLAYLIST-TYPE tag with the value | If the Playlist contains an EXT-X-PLAYLIST-TYPE tag with the value | |||
| of VOD, the first segment of every Media Playlist in every Variant | of VOD, the first segment of every Media Playlist in every Variant | |||
| Stream MUST start at the same media timestamp. | Stream MUST start at the same media timestamp. | |||
| If any Media Playlist in a Master Playlist contains an EXT-X | If any Media Playlist in a Master Playlist contains an EXT-X - | |||
| -PROGRAM-DATE-TIME tag, then all Media Playlists in that Master | PROGRAM-DATE-TIME tag, then all Media Playlists in that Master | |||
| Playlist MUST contain EXT-X-PROGRAM-DATE-TIME tags with consistent | Playlist MUST contain EXT-X-PROGRAM-DATE-TIME tags with consistent | |||
| mappings of date and time to media timestamps. | mappings of date and time to media timestamps. | |||
| Each Variant Stream MUST contain the same set of Date Ranges, each | Each Variant Stream MUST contain the same set of Date Ranges, each | |||
| one identified by EXT-X-DATERANGE tag(s) with the same ID | one identified by EXT-X-DATERANGE tag(s) with the same ID | |||
| attribute value and containing the same set of attributes / value | attribute value and containing the same set of attributes / value | |||
| pairs. | pairs. | |||
| In addition, for broadest compatibility, Variant Streams SHOULD | In addition, for broadest compatibility, Variant Streams SHOULD | |||
| contain the same encoded audio bitstream. This allows clients to | contain the same encoded audio bitstream. This allows clients to | |||
| skipping to change at page 45, line 15 | skipping to change at page 44, line 15 | |||
| account; if it does not the client MAY assume the time to be local. | account; if it does not the client MAY assume the time to be local. | |||
| Note that dates in Playlists can refer to when the content was | Note that dates in Playlists can refer to when the content was | |||
| produced (or to other times), which have no relation to the time of | produced (or to other times), which have no relation to the time of | |||
| playback. | playback. | |||
| If the first EXT-X-PROGRAM-DATE-TIME tag in a Playlist appears after | If the first EXT-X-PROGRAM-DATE-TIME tag in a Playlist appears after | |||
| one or more media segment URIs, the client SHOULD extrapolate | one or more media segment URIs, the client SHOULD extrapolate | |||
| backward from that tag (using EXTINF durations and/or media | backward from that tag (using EXTINF durations and/or media | |||
| timestamps) to associate dates with those segments. To associate a | timestamps) to associate dates with those segments. To associate a | |||
| date with any other media segment that does not have an EXT-X | date with any other media segment that does not have an EXT-X - | |||
| -PROGRAM-DATE-TIME tag applied to it directly , the client SHOULD | PROGRAM-DATE-TIME tag applied to it directly , the client SHOULD | |||
| extrapolate forward from the last EXT-X-PROGRAM-DATE-TIME tag | extrapolate forward from the last EXT-X-PROGRAM-DATE-TIME tag | |||
| appearing before that segment in the Playlist. | appearing before that segment in the Playlist. | |||
| 6.3.4. Reloading the Media Playlist file | 6.3.4. Reloading the Media Playlist file | |||
| The client MUST periodically reload a Media Playlist file to learn | The client MUST periodically reload a Media Playlist file to learn | |||
| what media is currently available, unless it contains an EXT-X | what media is currently available, unless it contains an EXT-X - | |||
| -PLAYLIST-TYPE tag with a value of VOD, or a value of EVENT and the | PLAYLIST-TYPE tag with a value of VOD, or a value of EVENT and the | |||
| EXT-X-ENDLIST tag is also present. | EXT-X-ENDLIST tag is also present. | |||
| However the client MUST NOT attempt to reload the Playlist file more | However the client MUST NOT attempt to reload the Playlist file more | |||
| frequently than specified by this section, in order to limit the | frequently than specified by this section, in order to limit the | |||
| collective load on the server. | collective load on the server. | |||
| When a client loads a Playlist file for the first time or reloads a | When a client loads a Playlist file for the first time or reloads a | |||
| Playlist file and finds that it has changed since the last time it | Playlist file and finds that it has changed since the last time it | |||
| was loaded, the client MUST wait for at least the target duration | was loaded, the client MUST wait for at least the target duration | |||
| before attempting to reload the Playlist file again, measured from | before attempting to reload the Playlist file again, measured from | |||
| skipping to change at page 48, line 13 | skipping to change at page 47, line 13 | |||
| contains: | contains: | |||
| o The KEYFORMAT and KEYFORMATVERSIONS attributes of the EXT-X-KEY | o The KEYFORMAT and KEYFORMATVERSIONS attributes of the EXT-X-KEY | |||
| tag. | tag. | |||
| o The EXT-X-MAP tag. | o The EXT-X-MAP tag. | |||
| A Media Playlist MUST indicate a EXT-X-VERSION of 6 or higher if it | A Media Playlist MUST indicate a EXT-X-VERSION of 6 or higher if it | |||
| contains: | contains: | |||
| o The EXT-X-MAP tag in a Media Playlist that does not contain | o The EXT-X-MAP tag in a Media Playlist that does not contain EXT- | |||
| EXT-X-I-FRAMES-ONLY. | X-I-FRAMES-ONLY. | |||
| A Master Playlist MUST indicate a EXT-X-VERSION of 7 or higher if it | A Master Playlist MUST indicate a EXT-X-VERSION of 7 or higher if it | |||
| contains: | contains: | |||
| o "SERVICE" values for the INSTREAM-ID attribute of the EXT-X-MEDIA | o "SERVICE" values for the INSTREAM-ID attribute of the EXT-X-MEDIA | |||
| tag. | tag. | |||
| The EXT-X-MEDIA tag and the AUDIO, VIDEO and SUBTITLES attributes of | The EXT-X-MEDIA tag and the AUDIO, VIDEO and SUBTITLES attributes of | |||
| the EXT-X-STREAM-INF tag are backward compatible to protocol version | the EXT-X-STREAM-INF tag are backward compatible to protocol version | |||
| 1, but playback on older clients may not be desirable. A server MAY | 1, but playback on older clients may not be desirable. A server MAY | |||
| consider indicating a EXT-X-VERSION of 4 or higher in the Master | consider indicating a EXT-X-VERSION of 4 or higher in the Master | |||
| Playlist but is not required to do so. | Playlist but is not required to do so. | |||
| The PROGRAM-ID attribute of the EXT-X-STREAM-INF and the EXT-X-I | The PROGRAM-ID attribute of the EXT-X-STREAM-INF and the EXT-X-I - | |||
| -FRAME-STREAM-INF tags was removed in protocol version 6. | FRAME-STREAM-INF tags was removed in protocol version 6. | |||
| The EXT-X-ALLOW-CACHE tag was removed in protocol version 7. | The EXT-X-ALLOW-CACHE tag was removed in protocol version 7. | |||
| 8. Playlist Examples | 8. Playlist Examples | |||
| 8.1. Simple Media Playlist | 8.1. Simple Media Playlist | |||
| #EXTM3U | #EXTM3U | |||
| #EXT-X-TARGETDURATION:10 | #EXT-X-TARGETDURATION:10 | |||
| #EXT-X-VERSION:3 | #EXT-X-VERSION:3 | |||
| skipping to change at page 54, line 40 | skipping to change at page 53, line 37 | |||
| Encryption keys are specified by URI. The delivery of these keys | Encryption keys are specified by URI. The delivery of these keys | |||
| SHOULD be secured by a mechanism such as HTTP Over TLS [RFC2818] | SHOULD be secured by a mechanism such as HTTP Over TLS [RFC2818] | |||
| (formerly SSL) in conjunction with a secure realm or a session token. | (formerly SSL) in conjunction with a secure realm or a session token. | |||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.1. Normative References | |||
| [AC_3] Advanced Television Systems Committee, "ATSC Standard: | [AC_3] Advanced Television Systems Committee, "ATSC Standard: | |||
| A/52:2010: Digital Audio Compression (AC-3) (E-AC-3) | A/52:2010: Digital Audio Compression (AC-3) (E-AC-3) | |||
| Standard", November 2010, <http://atsc.org/wp-content/ | Standard", November 2010, <http://atsc.org/wp- | |||
| uploads/2015/03/A52-201212-17.pdf>. | content/uploads/2015/03/A52-201212-17.pdf>. | |||
| [AES_128] U.S. Department of Commerce/National Institute of | ||||
| Standards and Technology, "Advanced Encryption Standard | ||||
| (AES), FIPS PUB 197", November 2001, <http://csrc.nist | ||||
| .gov/publications/fips/fips197/fips-197.pdf>. | ||||
| [CEA608] Consumer Electronics Association, "CEA-608-E: Line 21 Data | [CEA608] Consumer Electronics Association, "CEA-608-E: Line 21 Data | |||
| Services", April 2008, <http://www.ce.org/Standards/ | Services", April 2008, <http://www.ce>. | |||
| Standard-Listings/R4-3-Television-Data-Systems | ||||
| -Subcommittee/Line-21-Data-Service.aspx>. | ||||
| [CEA708] Consumer Electronics Association, "CEA-708-E (ANSI): | [CEA708] Consumer Electronics Association, "CEA-708-E (ANSI): | |||
| Digital Television (DTV) Closed Captioning", August 2013, | Digital Television (DTV) Closed Captioning", August 2013, | |||
| <http://www.ce.org/Standards/Standard-Listings/ | <http://www.ce.org/Standards/Standard-Listings/ | |||
| R4-3-Television-Data-Systems-Subcommittee/CEA-708-D.aspx>. | R4-3-Television-Data-Systems-Subcommittee/CEA-708-D.aspx>. | |||
| [COMMON_ENC] | [COMMON_ENC] | |||
| International Organization for Standardization, "ISO/IEC | International Organization for Standardization, "ISO/IEC | |||
| 23001-7:2016; Information technology -- MPEG systems | 23001-7:2016; Information technology -- MPEG systems | |||
| technologies -- Part 7: Common encryption in ISO base | technologies -- Part 7: Common encryption in ISO base | |||
| media file format files", February 2016, <http://www.iso | media file format files", February 2016, <http://www>. | |||
| .org/iso/catalogue_detail.htm?csnumber=68042>. | ||||
| [HDCP] Digital Content Protection LLC, "High-bandwidth Digital | ||||
| Content Protection System - Mapping HDCP to HDMI", | ||||
| February 2013, <http://www.digital-cp.com/sites/default/ | ||||
| files/specifications/ | ||||
| HDCP%20on%20HDMI%20Specification%20Rev2_2_Final1.pdf>. | ||||
| [H_264] International Telecommunications Union, "Advanced video | [H_264] International Telecommunications Union, "Advanced video | |||
| coding for generic audiovisual services", January 2012, | coding for generic audiovisual services", January 2012, | |||
| <http://www.itu.int/rec/T-REC-H.264>. | <http://www.itu.int/rec/T-REC-H.264>. | |||
| [ISOBMFF] International Organization for Standardization, "ISO/IEC | [HDCP] Digital Content Protection LLC, "High-bandwidth Digital | |||
| 14496-12:2015; Information technology -- Coding of audio- | Content Protection System - Mapping HDCP to HDMI", | |||
| visual objects -- Part 12: ISO base media file format", | February 2013, <http://www.digital- | |||
| December 2015, <http://www.iso.org/iso/ | cp.com/sites/default/files/specifications/ | |||
| catalogue_detail.htm?csnumber=68960>. | HDCP%20on%20HDMI%20Specification%20Rev2_2_Final1.pdf>. | |||
| [ISO_13818] | [ISO_13818] | |||
| International Organization for Standardization, "ISO/IEC | International Organization for Standardization, "ISO/IEC | |||
| International Standard 13818; Generic coding of moving | International Standard 13818; Generic coding of moving | |||
| pictures and associated audio information", October 2007, | pictures and associated audio information", October 2007, | |||
| <http://www.iso.org/iso/catalogue_detail?csnumber=44169>. | <http://www.iso.org/iso/catalogue_detail?csnumber=44169>. | |||
| [ISO_13818_3] | [ISO_13818_3] | |||
| International Organization for Standardization, "ISO/IEC | International Organization for Standardization, "ISO/IEC | |||
| International Standard 13818-3:1998; Generic coding of | International Standard 13818-3:1998; Generic coding of | |||
| moving pictures and associated audio information - Part 3: | moving pictures and associated audio information - Part 3: | |||
| Audio", April 1998, <http://www.iso.org/iso/home/store/ | Audio", April 1998, | |||
| catalogue_tc/catalogue_detail.htm?csnumber=26797>. | <http://www.iso.org/iso/home/store/catalogue_tc/ | |||
| catalogue_detail.htm?csnumber=26797>. | ||||
| [ISO_13818_7] | [ISO_13818_7] | |||
| International Organization for Standardization, "ISO/IEC | International Organization for Standardization, "ISO/IEC | |||
| International Standard 13818-3:2006; Generic coding of | International Standard 13818-3:2006; Generic coding of | |||
| moving pictures and associated audio information - Part 7: | moving pictures and associated audio information - Part 7: | |||
| Advanced Audio Coding (AAC)", January 2006, | Advanced Audio Coding (AAC)", January 2006, | |||
| <http://www.iso.org/iso/home/store/catalogue_tc/ | <http://www.iso.org/iso/home/store/catalogue_tc/ | |||
| catalogue_detail.htm?csnumber=43345>. | catalogue_detail.htm?csnumber=43345>. | |||
| [ISO_14496] | [ISO_14496] | |||
| International Organization for Standardization, "ISO/IEC | International Organization for Standardization, "ISO/IEC | |||
| 14496-3:2009 Information technology -- Coding of audio- | 14496-3:2009 Information technology -- Coding of audio- | |||
| visual objects -- Part 3: Audio", 2009, | visual objects -- Part 3: Audio", 2009, | |||
| <http://www.iso.org/iso/catalogue_detail?csnumber=53943>. | <http://www.iso.org/iso/catalogue_detail?csnumber=53943>. | |||
| [ISO_8601] | [ISO_8601] | |||
| International Organization for Standardization, "ISO/IEC | International Organization for Standardization, "ISO/IEC | |||
| International Standard 8601:2004; Data elements and | International Standard 8601:2004; Data elements and | |||
| interchange formats -- Information interchange -- | interchange formats -- Information interchange | |||
| Representation of dates and times", December 2004, | --Representation of dates and times", December 2004, | |||
| <http://www.iso.org/iso/catalogue_detail?csnumber=40874>. | <http://www.iso.org/iso/catalogue_detail?csnumber=40874>. | |||
| [ISOBMFF] International Organization for Standardization, "ISO/IEC | ||||
| 14496-12:2015; Information technology -- Coding of audio- | ||||
| visual objects -- Part 12: ISO base media file format", | ||||
| December 2015, <http://www.iso.org/iso/ | ||||
| catalogue_detail.htm?csnumber=68960>. | ||||
| [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | |||
| Extensions (MIME) Part Two: Media Types", RFC 2046, | Extensions (MIME) Part Two: Media Types", RFC 2046, | |||
| November 1996. | DOI 10.17487/RFC2046, November 1996, | |||
| <http://www.rfc-editor.org/info/rfc2046>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | ||||
| <http://www.rfc-editor.org/info/rfc2119>. | ||||
| [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. | [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, | |||
| DOI 10.17487/RFC2818, May 2000, | ||||
| <http://www.rfc-editor.org/info/rfc2818>. | ||||
| [RFC2964] Moore, K. and N. Freed, "Use of HTTP State Management", | [RFC2964] Moore, K. and N. Freed, "Use of HTTP State Management", | |||
| BCP 44, RFC 2964, October 2000. | BCP 44, RFC 2964, DOI 10.17487/RFC2964, October 2000, | |||
| <http://www.rfc-editor.org/info/rfc2964>. | ||||
| [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | |||
| 10646", STD 63, RFC 3629, November 2003. | 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November | |||
| 2003, <http://www.rfc-editor.org/info/rfc3629>. | ||||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| Resource Identifier (URI): Generic Syntax", STD 66, RFC | Resource Identifier (URI): Generic Syntax", STD 66, | |||
| 3986, January 2005. | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
| <http://www.rfc-editor.org/info/rfc3986>. | ||||
| [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying | [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying | |||
| Languages", BCP 47, RFC 5646, September 2009. | Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, | |||
| September 2009, <http://www.rfc-editor.org/info/rfc5646>. | ||||
| [RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, | [RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", STD 70, | |||
| RFC 5652, September 2009. | RFC 5652, DOI 10.17487/RFC5652, September 2009, | |||
| <http://www.rfc-editor.org/info/rfc5652>. | ||||
| [RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, | [RFC6265] Barth, A., "HTTP State Management Mechanism", RFC 6265, | |||
| April 2011. | DOI 10.17487/RFC6265, April 2011, | |||
| <http://www.rfc-editor.org/info/rfc6265>. | ||||
| [RFC6381] Gellens, R., Singer, D., and P. Frojdh, "The 'Codecs' and | [RFC6381] Gellens, R., Singer, D., and P. Frojdh, "The 'Codecs' and | |||
| 'Profiles' Parameters for "Bucket" Media Types", RFC 6381, | 'Profiles' Parameters for "Bucket" Media Types", RFC 6381, | |||
| August 2011. | DOI 10.17487/RFC6381, August 2011, | |||
| <http://www.rfc-editor.org/info/rfc6381>. | ||||
| [RFC7159] Bray, T., "The JavaScript Object Notation (JSON) Data | [RFC7159] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data | |||
| Interchange Format", RFC 7159, March 2014. | Interchange Format", RFC 7159, DOI 10.17487/RFC7159, March | |||
| 2014, <http://www.rfc-editor.org/info/rfc7159>. | ||||
| [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | [RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer | |||
| Protocol (HTTP/1.1): Message Syntax and Routing", RFC | Protocol (HTTP/1.1): Message Syntax and Routing", | |||
| 7230, DOI 10.17487/RFC7230, June 2014, | RFC 7230, DOI 10.17487/RFC7230, June 2014, | |||
| <http://www.rfc-editor.org/info/rfc7230>. | <http://www.rfc-editor.org/info/rfc7230>. | |||
| [SCTE35] Society of Cable Telecommunications Engineers, "SCTE-35 | [SCTE35] Society of Cable Telecommunications Engineers, "SCTE-35 | |||
| (ANSI/SCTE): Digital Program Insertion Cueing Message for | (ANSI/SCTE): Digital Program Insertion Cueing Message for | |||
| Cable", August 2014, <http://www.scte.org/documents/pdf/ | Cable", August 2014, | |||
| Standards/ANSI_SCTE%2035%202014.pdf>. | <http://www.scte.org/documents/pdf/Standards/ | |||
| ANSI_SCTE%2035%202014.pdf>. | ||||
| [US_ASCII] | [US_ASCII] | |||
| American National Standards Institute, "ANSI X3.4-1986, | American National Standards Institute, "ANSI X3.4-1986, | |||
| Information Systems -- Coded Character Sets 7-Bit American | Information Systems -- Coded Character Sets 7-Bit American | |||
| National Standard Code for Information Interchange (7-Bit | National Standard Code for Information Interchange (7-Bit | |||
| ASCII)", December 1986. | ASCII)", December 1986. | |||
| [WebVTT] World Wide Web Consortium (W3C), "WebVTT: The Web Video | ||||
| Text Tracks Format", July 2013, | ||||
| <http://dev.w3.org/html5/webvtt/>. | ||||
| 12.2. Informative References | 12.2. Informative References | |||
| [CMAF] International Organization for Standardization, "ISO/IEC | [CMAF] International Organization for Standardization, "ISO/IEC | |||
| 23000-19; Information technology -- Multimedia application | 23000-19; Information technology -- Multimedia application | |||
| format (MPEG-A) -- Part 5: Common media application format | format (MPEG-A) -- Part 5: Common media application format | |||
| (CMAF) for segmented media", <https://www.iso.org/ | (CMAF) for segmented media", <https://www.iso.org/ | |||
| standard/71975.html/>. | standard/71975.html/>. | |||
| [ID3] ID3.org, "The ID3 audio file data tagging format", | ||||
| <http://www.id3.org/Developer_Information>. | ||||
| [M3U] Nullsoft, Inc., "The M3U Playlist format, originally | ||||
| invented for the Winamp media player", | ||||
| <http://wikipedia.org/wiki/M3U>. | ||||
| [SampleEnc] | [SampleEnc] | |||
| Apple Inc., "MPEG-2 Stream Encryption Format for HTTP Live | Apple Inc., "MPEG-2 Stream Encryption Format for HTTP Live | |||
| Streaming", <https://developer.apple.com/library/ios/ | Streaming", | |||
| documentation/AudioVideo/Conceptual/ | <https://developer.apple.com/library/ios/documentation/ | |||
| HLS_Sample_Encryption/>. | AudioVideo/Conceptual/HLS_Sample_Encryption/>. | |||
| [UTI] Apple Inc., "Uniform Type Identifier", | [UTI] Apple Inc., "Uniform Type Identifier", <http://developer.a | |||
| <http://developer.apple.com/library/ios/#documentation/ | pple.com/library/ios/#documentation/general/conceptual/ | |||
| general/conceptual/DevPedia-CocoaCore/ | DevPedia-CocoaCore/UniformTypeIdentifier.html>. | |||
| UniformTypeIdentifier.html>. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Roger Pantos (editor) | Roger Pantos (editor) | |||
| Apple Inc. | Apple Inc. | |||
| Cupertino, California | Cupertino, California | |||
| United States | United States | |||
| Email: http-live-streaming-review@group.apple.com | Email: http-live-streaming-review@group.apple.com | |||
| End of changes. 52 change blocks. | ||||
| 211 lines changed or deleted | 175 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/  | ||||