HLS - EXT-X-DATERANGE Compliance

2.2k views Asked by At

HTTP Live Streaming, draft-pantos-http-live-streaming-23 (Version 23) defines EXT-X-DATERANGE tag. Which has multiple attributes also defined by the specification: ID, START-DATE, etc.

Among defined attributes are SCTE35-OUT, SCTE35-IN. The specification mentions the following about them:

Used to carry SCTE-35 data; see Section 4.3.2.7.1 for more information. These attributes are OPTIONAL.

... value is the big-endian binary representation of the splice_info_section(), expressed as a hexadecimal-sequence.

However, the specification does not define how critical the value of this attributes is.

For example in the documentation of AWS Elemental the values for SCTE35-OUT and SCTE35-IN are identical:

#EXT-X-DATERANGE:ID="999",START-DATE="2018-08-22T21:54:00.079Z",PLANNED-DURATION=30.000,
SCTE35-OUT=0xFC302500000000000000FFF01405000003E77FEFFE0011FB9EFE002932E00001010100004D192A59
.
.
.     
#EXT-X-DATERANGE:ID="999",END-DATE="2018-08-22T21:54:30.109Z",DURATION=30.030,
SCTE35-IN=0xFC302500000000000000FFF01405000003E77FEFFE0011FB9EFE002932E00001010100004D192A59

Although HLS specification states:

For splice_insert

The "in" splice_info_section() (with out_of_network_indicator set to 0) MUST be placed in a SCTE35-IN attribute, with the same formatting as SCTE35-CMD.

For time_signal

The "out" splice_info_section() MUST be placed in a SCTE35-OUT attribute; the "in" splice_info_section() MUST be placed in a SCTE35-IN attribute.

Hence, I would expect that the value of these attributes should be always different. Am I missing something? Or this values are completely irrelevant to the clients?

Note: the hex string can be parsed and compared by using: https://openidconnectweb.azurewebsites.net/Cue

1

There are 1 answers

0
AudioBubble On

The same hex is used twice because break auto return is true, and the break duration is specified.

   "command": {
    "command_length": 20,
    "command_type": 5,
    "name": "Splice Insert",
    "time_specified_flag": true,
    "pts_time": 13.094733, # The CUE-OUT is at this time
    "pts_time_ticks": 1178526,
    "break_auto_return": true, # Automatically return from the break
    "break_duration": 30.0, #   The CUE-IN is 30 seconds later.
    "break_duration_ticks": 2700000,
    "splice_event_id": 999,
    "splice_event_cancel_indicator": false,
    "out_of_network_indicator": true,
    "program_splice_flag": true,
    "duration_flag": true,
    "splice_immediate_flag": false,
    "unique_program_id": 1,
    "avail_num": 1,
    "avail_expected": 1
},
"descriptors": []

}

Check out threefive