28 #define DCA_CORE_EXTS (DCA_EXT_XCH | DCA_EXT_XXCH | DCA_EXT_X96)
56 return av_popcount(mask) +
75 for (i = 0; i < channels; i++) {
76 int mix_map_mask =
get_bits(gb, out_ch);
77 int num_coeffs = av_popcount(mix_map_mask);
90 int embedded_stereo = 0;
93 int extensions_mask = 0;
126 int spkr_mask_size = 16;
135 spkr_mask_size = (
get_bits(&s->
gb, 2) + 1) << 2;
141 for (i = 0; i < spkr_remap_sets; i++) {
146 for (i = 0; i < spkr_remap_sets; i++) {
147 int num_dec_ch_remaps =
get_bits(&s->
gb, 5) + 1;
151 for (j = 0; j < num_spkrs[i]; j++) {
153 int num_dec_ch = av_popcount(remap_dec_ch_mask);
163 if (drc_code_present)
169 if (drc_code_present && embedded_stereo)
234 "DTS extensions detection mismatch (%d, %d)\n",
250 int active_ss_mask[8];
265 hdrsize =
get_bits(&s->
gb, 8 + 4 * blownup) + 1;
280 if (num_audiop > 1) {
282 "Multiple DTS-HD audio presentations");
288 if (num_assets > 1) {
294 for (i = 0; i < num_audiop; i++)
295 active_ss_mask[i] =
get_bits(&s->
gb, ss_index + 1);
297 for (i = 0; i < num_audiop; i++)
298 for (j = 0; j <= ss_index; j++)
299 if (active_ss_mask[i] & (1 << j))
304 int mix_out_mask_size;
307 mix_out_mask_size = (
get_bits(&s->
gb, 2) + 1) << 2;
311 int mix_out_mask =
get_bits(&s->
gb, mix_out_mask_size);
319 for (i = 0; i < num_assets; i++)
322 for (i = 0; i < num_assets; i++) {
331 if (start_posn + hdrsize * 8 > j)
334 for (i = 0; i < num_assets; i++) {
339 if (mkr == 0x655e315e) {
341 }
else if (mkr == 0x47004a03) {
346 "DTS-ExSS: unknown marker = 0x%08x\n", mkr);
351 if (start_posn + asset_size[i] * 8 > j)