Deriving the contents of the EC3SpecificBox

This topic provides additional details on the information specific to Dolby Digital Plus and how information is derived from the Dolby Digital Plus bitstream parameters.

The data inside the EC3SpecificBox can be calculated by using information in the Dolby Digital Plus bitstream parameters, including:

  • frmsiz
  • fscod
  • numblkscod
  • substreamid
  • strmtyp
  • bsmod
  • chanmap
  • addbsi

data_rate

The data_rate parameter indicates the data rate (in kbps) of the entire Dolby Digital Plus bitstream. The value is the sum of the data rates of all the substreams in the Dolby Digital Plus bitstream. When a bitstream uses variable data-rate encoding, data_rate indicates the maximum data rate of the bitstream.

The data rate of each substream is calculated using this equation:

In this equation:

  • frmsiz is the value of the frmsiz parameter in the Dolby Digital Plus frame.
  • fs is the sampling frequency of the Dolby Digital Plus bitstream (in kHz). (The fs value is derived from the fscod parameter in the Dolby Digital Plus frame.)
  • numblks is the number of audio blocks per frame. (The numblks value is derived from the numblkscod parameter in the Dolby Digital Plus frame.)

num_ind_sub

The num_ind_sub parameter indicates the number of independent substreams present in the Dolby Digital Plus bitstream. The value of num_ind_sub is equal to the value of the substreamid parameter found in the last independent substream of the bitstream. During bitstream parsing, this will be the frame with a strmtyp value of 0 that precedes the frame with both a strmtyp value of 0 and a substreamid value of 0 (indicating that this frame belongs to the first independent substream of the bitstream).

bsmod

The bsmod parameter is optional in a Dolby Digital Plus bitstream. Detecting it requires additional parsing.

If the Dolby Digital Plus bitstream contains only one independent substream, inclusion of the value of bsmod in the EC3SpecificBox is optional. If parsing yields more than one independent substream, the value of bsmod must be included in the EC3SpecificBox for each substream to ensure that the system parsing the DASH-compliant file can quickly identify the audio services present in the bitstream.

This field itself is not optional. When there is no bsmod, the value must be set to zero.

num_dep_sub

The num_dep_sub parameter indicates the number of dependent substreams associated with an independent substream. Its value is equal to the value of the substreamid parameter found in the frame with a strmtyp value of 1 (that is, in the dependent substream) immediately preceding a frame with a strmtyp value of 0 (that is, in the independent substream).

chan_loc

The chan_loc field indicates channel locations (beyond the standard 5.1 channels) that are carried by dependent substreams associated with an independent substream. The contents of the chan_loc field are determined by parsing the chanmap bit field in every dependent substream associated with a particular independent substream, and setting the corresponding channel locations in the chan_loc field to a value of 1.

Because this field is used by the system only to indicate the unique channel locations present in the bitstream, it is not necessary to reflect replacement channels in this field. Therefore, duplicate channel locations in the chanmap field indicate replacement channels and can be ignored.

flag_ec3_extension_type_a

The flag_ec3_extension_type_a parameter indicates whether Dolby Atmos content is present in a bitstream. Its value is equal to the value of the flag_ec3_extension_type_a bit found in the addbsi.

complexity_index_type_a

The complexity_index_type_a parameter indicates the decoding complexity of a Dolby Digital Plus bitstream carrying Dolby Atmos content. If the flag_ec3_extension_type_a bit in the addbsi has a value of 0, the complexity_index_type_a will not be available in the EC3SpecificBox. If the flag_ec3_extension_type_a bit in the addbsi has a value of 1, the complexity_index_type_a in the EC3SpecificBox shall take the value of the complexity_index_type_a field found in the addbsi of the bitstream.