Dolby AC-4 packetization into HTTP Live Streaming compliant audio-only elementary stream segments

When multiplexing a Dolby AC-4 audio elementary stream into HTTP Live Streaming compliant audio-only elementary stream segments, the product must meet certain conditions.

  • Use Dolby AC-4 Sync frames.
  • Ensure that the first Dolby AC-4 sync frame packaged in each audio elementary stream segment is a Random access point.
  • Each audio elementary stream segment must signal the time stamp of its first sample with an ID3 PRIV tag at the beginning of the segment.
  • The segments should have a file extension of .ac4.

The structure of an audio-only elementary stream segment is shown in the figure.

Figure: Audio-only elementary stream segments

Audio-only elementary stream segments

The syntax of the ID3 PRIV tag is described in this table.

Syntax Word Size in Bits Identifier Value
ID3_tag(){
ID3V2_header()
PRIV_frame()
}
ID3V2_header(){
ID3V2_file_identifier 3x8 string “ID3”
ID3V2_version 2x8 uimsbf 0x0400
ID3V2_flags 8 bslbf 0x00
ID3V2_size 4x8 bslbf 4x0b0xxxxxxx(0x0000003f)
}
PRIV_frame(){
frame_ID 4x8 string "PRIV"
frame_size 4x8 uimsbf 4x0b0xxxxxxx(0x00000035)
frame_status_flags 8 bslbf 0x00
frame_format_flags 8 bslbf 0x00
Owner_identifier 45x8 string "com.apple.streaming.transportStreamTimestamp"
Private_data 8x8 bslbf The upper 31 bits are set to zero,the lower 33 bits is the pts value
}