23 int multiplier_bit = 0;
24 int dsi_frame_rate_multiply_info = 0;
28 int b_frame_rate_fraction = 0;
29 int b_frame_rate_fraction_is_4 = 0;
35 int b_emdf_payloads_substream_info = 0;
36 int substream_index = 0;
38 int protection_length_primary = 0;
39 int protection_length_secondary = 0;
40 uint8_t protection_bits_primary[16];
41 uint8_t protection_bits_secondary[16];
45 int b_default_screen_size_ratio = 0;
46 int master_screen_size_ratio_code = 0;
47 int b_bed_object_chan_distribute = 0;
48 int b_additional_data = 0;
49 int add_data_bytes = 0;
50 int add_data_bytes_minus1 = 0;
56 int b_4_back_channels_present = 0;
57 int b_centre_present = 0;
58 int top_channels_present = 0;
59 int b_sf_multiplier = 0;
60 int sf_multiplier = 0;
61 int b_bitrate_info = 0;
62 int bitrate_indicator = 0;
65 int substream_index = 0;
71 int n_fullband_dmx_signals = 0;
72 int n_fullband_dmx_signals_minus1 = 0;
74 int b_dyn_objects_only = 0;
77 int b_ch_assign_code = 0;
78 int bed_chan_assign_code = 0;
79 int b_chan_assign_mask = 0;
80 int b_nonstd_bed_channel_assignment = 0;
81 int nonstd_bed_channel_assignment_mask = 0;
82 int std_bed_channel_assignment_mask = 0;
83 int n_bed_signals = 0;
84 int n_bed_signals_minus1 = 0;
85 int nonstd_bed_channel_assignment = 0;
86 int b_oamd_common_data_present = 0;
88 int n_fullband_upmix_signals_minus1 = 0;
89 int b_sf_multiplier = 0;
90 int sf_multiplier = 0;
91 int b_bitrate_info = 0;
92 int bitrate_indicator = 0;
94 int substream_index = 0;
98 int n_objects_code = 0;
99 int b_dynamic_objects = 0;
101 int b_bed_objects = 0;
103 int b_ch_assign_code = 0;
104 int bed_chan_assign_code = 0;
105 int b_nonstd_bed_channel_assignment = 0;
106 int nonstd_bed_channel_assignment_mask = 0;
107 int std_bed_channel_assignment_mask = 0;
111 int b_sf_multiplier = 0;
112 int sf_multiplier = 0;
113 int b_bitrate_info = 0;
114 int bitrate_indicator = 0;
115 int b_audio_ndot = 0;
116 int substream_index = 0;
120 int b_single_substream_group = 0;
121 int presentation_config = 0;
122 int presentation_version = 0;
124 int b_presentation_id = 0;
128 int b_presentation_filter = 0;
129 int b_enable_presentation = 0;
132 int group_index[16] = {0};
133 int n_substream_groups = 0;
134 int n_substream_groups_minus2 = 0;
135 int b_pre_virtualized = 0;
136 int b_add_emdf_substreams = 0;
137 int n_add_emdf_substreams = 0;
139 int b_alternative = 0;
141 int substream_index = 0;
146 int b_substreams_present = 0;
148 int b_single_substream = 0;
149 int n_lf_substreams = 0;
150 int n_lf_substreams_minus2 = 0;
151 int b_channel_coded = 0;
156 int b_oamd_substream = 0;
162 int b_content_type = 0;
163 int content_classifier = 0;
164 int b_language_indicator = 0;
165 int b_serialized_language_tag = 0;
167 int language_tag_chunk = 0;
168 int n_language_tag_bytes = 0;
169 int language_tag_bytes[64] = {0};
173 int bitstream_version;
174 int sequence_counter;
179 int frame_rate_index;
181 int b_single_presentation;
182 int b_more_presentations;
184 int payload_base_minus1;
186 int short_program_id;
187 int b_program_uuid_present;
190 int total_n_substream_groups;
198 virtual bool Parse(
const uint8_t* data,
size_t data_size);
199 int GetAc4TocSize() {
return toc_size; };
206 bool ParseAc4PresentationV1Info(
208 Ac4PresentationV1Info& ac4_presentation_v1_info,
209 int& max_group_index);
210 bool ParseFrameRateMultiplyInfo(
BitReader* reader);
211 bool ParseFrameRateFractionsInfo(
BitReader* reader);
213 bool ParseAc4PresentationSubstreamInfo(
BitReader* reader);
214 int ParseAc4SgiSpecifier(
BitReader* reader);
215 bool ParsePresentationConfigExtInfo(
BitReader* reader);
216 bool ParseAc4SubstreamGroupInfo(
218 Ac4SubstreamGroupInfo& ac4_substream_group_info,
219 int substream_group_index);
221 Ac4SubstreamGroupInfo& ac4_substream_group_info);
222 bool ParseOamdSubstreamInfo(
BitReader* reader,
223 Ac4SubstreamGroupInfo& ac4_substream_group_info);
224 bool ParseAc4HsfExtSubstreamInfo(
226 Ac4SubstreamGroupInfo& ac4_substream_group_info);
227 bool ParseAc4SubstreamInfoChan(
BitReader* reader,
228 int presentation_version,
230 int frame_rate_factor,
231 int b_substreams_present);
232 int ParseChannelMode(
BitReader* reader,
int presentation_version);
233 bool ParseAc4SubstreamInfoAjoc(
BitReader* reader,
235 int frame_rate_factor,
236 int b_substreams_present);
237 bool ParseBedDynObjAssignment(
BitReader* reader,
239 Ac4SubstreamInfoAjoc& ac4_substream_info_ajoc);
240 bool ParseOamdCommonData(
BitReader* reader);
241 bool ParseAc4SubstreamInfoObj(
BitReader* reader,
243 int frame_rate_factor,
244 int b_substreams_present);
245 int GetPresentationIdx(
int substream_group_index);
246 int GetPresentationVersion(
int substream_group_index);