/src/libde265/libde265/vui.cc
Line | Count | Source |
1 | | /* |
2 | | * H.265 video codec. |
3 | | * Copyright (c) 2013-2014 struktur AG, Dirk Farin <farin@struktur.de> |
4 | | * |
5 | | * This file is part of libde265. |
6 | | * |
7 | | * libde265 is free software: you can redistribute it and/or modify |
8 | | * it under the terms of the GNU Lesser General Public License as |
9 | | * published by the Free Software Foundation, either version 3 of |
10 | | * the License, or (at your option) any later version. |
11 | | * |
12 | | * libde265 is distributed in the hope that it will be useful, |
13 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 | | * GNU Lesser General Public License for more details. |
16 | | * |
17 | | * You should have received a copy of the GNU Lesser General Public License |
18 | | * along with libde265. If not, see <http://www.gnu.org/licenses/>. |
19 | | */ |
20 | | |
21 | | #include "vui.h" |
22 | | #include "decctx.h" |
23 | | |
24 | | #include <assert.h> |
25 | | #include <stdlib.h> |
26 | | #include <string.h> |
27 | | |
28 | | #define READ_VLC(variable, vlctype) \ |
29 | 19.6k | if ((vlc = br->get_ ## vlctype()) == UVLC_ERROR) { \ |
30 | 82 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); \ |
31 | 82 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; \ |
32 | 82 | } \ |
33 | 19.6k | (variable) = vlc; |
34 | | |
35 | | |
36 | 4.22k | #define NUM_SAR_PRESETS 17 |
37 | | |
38 | | static uint16_t sar_presets[NUM_SAR_PRESETS+1][2] = { |
39 | | { 0,0 }, |
40 | | { 1,1 }, |
41 | | { 12,11 }, |
42 | | { 10,11 }, |
43 | | { 16,11 }, |
44 | | { 40,33 }, |
45 | | { 24,11 }, |
46 | | { 20,11 }, |
47 | | { 32,11 }, |
48 | | { 80,33 }, |
49 | | { 18,11 }, |
50 | | { 15,11 }, |
51 | | { 64,33 }, |
52 | | { 160,99 }, |
53 | | { 4,3 }, |
54 | | { 3,2 }, |
55 | | { 2,1 } |
56 | | }; |
57 | | |
58 | 4.20k | #define EXTENDED_SAR 255 |
59 | | |
60 | | |
61 | | const char* get_video_format_name(enum VideoFormat format) |
62 | 0 | { |
63 | 0 | switch (format) { |
64 | 0 | case VideoFormat_Component: return "component"; |
65 | 0 | case VideoFormat_PAL: return "PAL"; |
66 | 0 | case VideoFormat_NTSC: return "NTSC"; |
67 | 0 | case VideoFormat_SECAM: return "SECAM"; |
68 | 0 | case VideoFormat_MAC: return "MAC"; |
69 | 0 | default: return "unspecified"; |
70 | 0 | } |
71 | 0 | } |
72 | | |
73 | | |
74 | 7.90k | video_usability_information::video_usability_information() = default; |
75 | | |
76 | | |
77 | | de265_error video_usability_information::hrd_parameters(error_queue* errqueue, bitreader* br, const seq_parameter_set* sps) |
78 | 130 | { |
79 | 130 | uint32_t vlc; |
80 | | |
81 | 130 | nal_hrd_parameters_present_flag = br->get_bits(1); |
82 | 130 | vcl_hrd_parameters_present_flag = br->get_bits(1); |
83 | | |
84 | 130 | if (nal_hrd_parameters_present_flag || vcl_hrd_parameters_present_flag) |
85 | 105 | { |
86 | 105 | sub_pic_hrd_params_present_flag = br->get_bits(1); |
87 | 105 | if (sub_pic_hrd_params_present_flag) |
88 | 77 | { |
89 | 77 | tick_divisor_minus2 = br->get_bits(8); |
90 | 77 | du_cpb_removal_delay_increment_length_minus1 = br->get_bits(5); |
91 | 77 | sub_pic_cpb_params_in_pic_timing_sei_flag = br->get_bits(1); |
92 | 77 | dpb_output_delay_du_length_minus1 = br->get_bits(5); |
93 | 77 | } |
94 | 105 | bit_rate_scale = br->get_bits(4); |
95 | 105 | cpb_size_scale = br->get_bits(4); |
96 | | |
97 | | |
98 | 105 | if (sub_pic_hrd_params_present_flag) |
99 | 77 | { |
100 | 77 | cpb_size_du_scale = br->get_bits(4); |
101 | 77 | } |
102 | 105 | initial_cpb_removal_delay_length_minus1 = br->get_bits(5); |
103 | 105 | au_cpb_removal_delay_length_minus1 = br->get_bits(5); |
104 | 105 | dpb_output_delay_length_minus1 = br->get_bits(5); |
105 | 105 | } |
106 | 130 | int i, nalOrVcl; |
107 | | |
108 | 212 | for (i = 0; i < sps->sps_max_sub_layers; i++) |
109 | 162 | { |
110 | 162 | fixed_pic_rate_general_flag[i] = br->get_bits(1); |
111 | 162 | if (!fixed_pic_rate_general_flag[i]) |
112 | 136 | { |
113 | 136 | fixed_pic_rate_within_cvs_flag[i] = br->get_bits(1); |
114 | 136 | } |
115 | 26 | else |
116 | 26 | { |
117 | 26 | fixed_pic_rate_within_cvs_flag[i] = true; |
118 | 26 | } |
119 | | |
120 | 162 | low_delay_hrd_flag[i] = 0;// Inferred to be 0 when not present |
121 | 162 | cpb_cnt_minus1[i] = 0; // Inferred to be 0 when not present |
122 | | |
123 | 162 | if (fixed_pic_rate_within_cvs_flag[i]) |
124 | 53 | { |
125 | 53 | READ_VLC(elemental_duration_in_tc_minus1[i], uvlc); |
126 | 50 | } |
127 | 109 | else |
128 | 109 | { |
129 | 109 | low_delay_hrd_flag[i] = br->get_bits(1); |
130 | 109 | } |
131 | 159 | if (!low_delay_hrd_flag[i]) |
132 | 149 | { |
133 | 149 | READ_VLC(cpb_cnt_minus1[i], uvlc); |
134 | 130 | if (cpb_cnt_minus1[i] > 31) { |
135 | 11 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
136 | 11 | } |
137 | 130 | } |
138 | | |
139 | 318 | for (nalOrVcl = 0; nalOrVcl < 2; nalOrVcl++) |
140 | 236 | { |
141 | 236 | if (((nalOrVcl == 0) && nal_hrd_parameters_present_flag) || |
142 | 159 | ((nalOrVcl == 1) && vcl_hrd_parameters_present_flag)) |
143 | 132 | { |
144 | 2.21k | for (uint32_t j = 0; j <= cpb_cnt_minus1[i]; j++) |
145 | 2.13k | { |
146 | 2.13k | READ_VLC(bit_rate_value_minus1[i][j][nalOrVcl], uvlc); |
147 | 2.11k | READ_VLC(cpb_size_value_minus1[i][j][nalOrVcl], uvlc); |
148 | | |
149 | 2.10k | if (sub_pic_hrd_params_present_flag) |
150 | 1.89k | { |
151 | 1.89k | READ_VLC(cpb_size_du_value_minus1[i][j][nalOrVcl], uvlc); |
152 | 1.87k | READ_VLC(bit_rate_du_value_minus1[i][j][nalOrVcl], uvlc); |
153 | 1.86k | } |
154 | 2.08k | cbr_flag[i][j][nalOrVcl] = br->get_bits(1); |
155 | 2.08k | } |
156 | 132 | } |
157 | 236 | } |
158 | 129 | } |
159 | 50 | return DE265_OK; |
160 | 130 | } |
161 | | |
162 | | de265_error video_usability_information::read(error_queue* errqueue, bitreader* br, |
163 | | const seq_parameter_set* sps) |
164 | 4.81k | { |
165 | 4.81k | uint32_t vlc; |
166 | | |
167 | | |
168 | | // --- sample aspect ratio (SAR) --- |
169 | | |
170 | 4.81k | aspect_ratio_info_present_flag = br->get_bits(1); |
171 | 4.81k | if (aspect_ratio_info_present_flag) { |
172 | 4.22k | int aspect_ratio_idc = br->get_bits(8); |
173 | 4.22k | if (aspect_ratio_idc <= NUM_SAR_PRESETS) { |
174 | 18 | sar_width = sar_presets[aspect_ratio_idc][0]; |
175 | 18 | sar_height = sar_presets[aspect_ratio_idc][1]; |
176 | 18 | } |
177 | 4.20k | else if (aspect_ratio_idc == EXTENDED_SAR) { |
178 | 1.02k | sar_width = br->get_bits(16); |
179 | 1.02k | sar_height = br->get_bits(16); |
180 | 1.02k | } |
181 | 3.18k | else { |
182 | 3.18k | sar_width = 0; |
183 | 3.18k | sar_height = 0; |
184 | 3.18k | } |
185 | 4.22k | } |
186 | 592 | else { |
187 | 592 | sar_width = 0; |
188 | 592 | sar_height = 0; |
189 | 592 | } |
190 | | |
191 | | |
192 | | // --- overscan --- |
193 | | |
194 | 4.81k | overscan_info_present_flag = br->get_bits(1); |
195 | 4.81k | if (overscan_info_present_flag) { |
196 | 1.18k | overscan_appropriate_flag = br->get_bits(1); |
197 | 1.18k | } |
198 | | |
199 | | |
200 | | // --- video signal type --- |
201 | | |
202 | 4.81k | { // defaults |
203 | 4.81k | video_format = VideoFormat_Unspecified; |
204 | 4.81k | video_full_range_flag = false; |
205 | 4.81k | colour_primaries = 2; |
206 | 4.81k | transfer_characteristics = 2; |
207 | 4.81k | matrix_coeffs = 2; |
208 | 4.81k | } |
209 | | |
210 | 4.81k | video_signal_type_present_flag = br->get_bits(1); |
211 | 4.81k | if (video_signal_type_present_flag) { |
212 | 3.93k | int video_format_idc = br->get_bits(3); |
213 | 3.93k | if (video_format_idc > 5) { |
214 | 2.01k | video_format_idc = VideoFormat_Unspecified; |
215 | 2.01k | } |
216 | 3.93k | video_format = (VideoFormat)video_format_idc; |
217 | | |
218 | 3.93k | video_full_range_flag = br->get_bits(1); |
219 | | |
220 | 3.93k | colour_description_present_flag = br->get_bits(1); |
221 | 3.93k | if (colour_description_present_flag) { |
222 | 3.64k | colour_primaries = br->get_bits(8); |
223 | 3.64k | if (colour_primaries == 0 || |
224 | 3.63k | colour_primaries == 3 || |
225 | 3.59k | colour_primaries >= 11) { |
226 | 3.36k | colour_primaries = 2; |
227 | 3.36k | } |
228 | | |
229 | 3.64k | transfer_characteristics = br->get_bits(8); |
230 | 3.64k | if (transfer_characteristics == 0 || |
231 | 3.53k | transfer_characteristics == 3 || |
232 | 3.52k | transfer_characteristics >= 18) { |
233 | 3.38k | transfer_characteristics = 2; |
234 | 3.38k | } |
235 | | |
236 | 3.64k | matrix_coeffs = br->get_bits(8); |
237 | | |
238 | 3.64k | if (matrix_coeffs >= 11) { |
239 | 3.04k | matrix_coeffs = 2; |
240 | 3.04k | } |
241 | 3.64k | } |
242 | 3.93k | } |
243 | | |
244 | | |
245 | | // --- chroma / interlaced --- |
246 | | |
247 | 4.81k | chroma_loc_info_present_flag = br->get_bits(1); |
248 | 4.81k | if (chroma_loc_info_present_flag) { |
249 | 2.11k | if ((vlc = br->get_uvlc()) == UVLC_ERROR || vlc > 5) { |
250 | 12 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); |
251 | 12 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
252 | 12 | } |
253 | 2.10k | chroma_sample_loc_type_top_field = vlc; |
254 | | |
255 | 2.10k | if ((vlc = br->get_uvlc()) == UVLC_ERROR || vlc > 5) { |
256 | 12 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); |
257 | 12 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
258 | 12 | } |
259 | 2.08k | chroma_sample_loc_type_bottom_field = vlc; |
260 | 2.08k | } |
261 | 2.70k | else { |
262 | 2.70k | chroma_sample_loc_type_top_field = 0; |
263 | 2.70k | chroma_sample_loc_type_bottom_field = 0; |
264 | 2.70k | } |
265 | | |
266 | 4.79k | neutral_chroma_indication_flag = br->get_bits(1); |
267 | 4.79k | field_seq_flag = br->get_bits(1); |
268 | 4.79k | frame_field_info_present_flag = br->get_bits(1); |
269 | | |
270 | | |
271 | | // --- default display window --- |
272 | | |
273 | 4.79k | default_display_window_flag = br->get_bits(1); |
274 | 4.79k | if (default_display_window_flag) { |
275 | 2.86k | READ_VLC(def_disp_win_left_offset, uvlc); |
276 | 2.86k | READ_VLC(def_disp_win_right_offset, uvlc); |
277 | 2.86k | READ_VLC(def_disp_win_top_offset, uvlc); |
278 | 2.85k | READ_VLC(def_disp_win_bottom_offset, uvlc); |
279 | 2.85k | } |
280 | 1.92k | else { |
281 | 1.92k | def_disp_win_left_offset = 0; |
282 | 1.92k | def_disp_win_right_offset = 0; |
283 | 1.92k | def_disp_win_top_offset = 0; |
284 | 1.92k | def_disp_win_bottom_offset = 0; |
285 | 1.92k | } |
286 | | |
287 | | |
288 | | // --- timing --- |
289 | | |
290 | 4.77k | vui_timing_info_present_flag = br->get_bits(1); |
291 | 4.77k | if (vui_timing_info_present_flag) { |
292 | 2.68k | vui_num_units_in_tick = br->get_bits(32); |
293 | 2.68k | vui_time_scale = br->get_bits(32); |
294 | | |
295 | 2.68k | vui_poc_proportional_to_timing_flag = br->get_bits(1); |
296 | 2.68k | if (vui_poc_proportional_to_timing_flag) { |
297 | 76 | if ((vlc = br->get_uvlc()) == UVLC_ERROR) { |
298 | 1 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); |
299 | 1 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
300 | 1 | } |
301 | | |
302 | 75 | vui_num_ticks_poc_diff_one = vlc + 1; |
303 | 75 | } |
304 | | |
305 | | // --- hrd parameters --- |
306 | | |
307 | 2.68k | vui_hrd_parameters_present_flag = br->get_bits(1); |
308 | 2.68k | if (vui_hrd_parameters_present_flag) { |
309 | 130 | de265_error err; |
310 | 130 | err = hrd_parameters(errqueue, br, sps); |
311 | 130 | if (err) { |
312 | 80 | return err; |
313 | 80 | } |
314 | 130 | } |
315 | 2.68k | } |
316 | | |
317 | | // --- bitstream restriction --- |
318 | | |
319 | 4.69k | bitstream_restriction_flag = br->get_bits(1); |
320 | 4.69k | if (bitstream_restriction_flag) { |
321 | 358 | tiles_fixed_structure_flag = br->get_bits(1); |
322 | 358 | motion_vectors_over_pic_boundaries_flag = br->get_bits(1); |
323 | 358 | restricted_ref_pic_lists_flag = br->get_bits(1); |
324 | | |
325 | 358 | if ((vlc = br->get_uvlc()) == UVLC_ERROR || vlc > 4095) { |
326 | 11 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); |
327 | 11 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
328 | 11 | } |
329 | 347 | min_spatial_segmentation_idc = vlc; |
330 | | |
331 | 347 | if ((vlc = br->get_uvlc()) == UVLC_ERROR || vlc > 16) { |
332 | 13 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); |
333 | 13 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
334 | 13 | } |
335 | 334 | max_bytes_per_pic_denom = vlc; |
336 | | |
337 | 334 | if ((vlc = br->get_uvlc()) == UVLC_ERROR || vlc > 16) { |
338 | 11 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); |
339 | 11 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
340 | 11 | } |
341 | 323 | max_bits_per_min_cu_denom = vlc; |
342 | | |
343 | 323 | if ((vlc = br->get_uvlc()) == UVLC_ERROR || vlc > 15) { |
344 | 6 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); |
345 | 6 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
346 | 6 | } |
347 | 317 | log2_max_mv_length_horizontal = vlc; |
348 | | |
349 | 317 | if ((vlc = br->get_uvlc()) == UVLC_ERROR || vlc > 15) { |
350 | 7 | errqueue->add_warning(DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE, false); |
351 | 7 | return DE265_ERROR_CODED_PARAMETER_OUT_OF_RANGE; |
352 | 7 | } |
353 | 310 | log2_max_mv_length_vertical = vlc; |
354 | 310 | } |
355 | 4.33k | else { |
356 | 4.33k | tiles_fixed_structure_flag = false; |
357 | 4.33k | motion_vectors_over_pic_boundaries_flag = true; |
358 | 4.33k | restricted_ref_pic_lists_flag = false; // NOTE: default not specified in standard 2014/10 |
359 | | |
360 | 4.33k | min_spatial_segmentation_idc = 0; |
361 | 4.33k | max_bytes_per_pic_denom = 2; |
362 | 4.33k | max_bits_per_min_cu_denom = 1; |
363 | 4.33k | log2_max_mv_length_horizontal = 15; |
364 | 4.33k | log2_max_mv_length_vertical = 15; |
365 | 4.33k | } |
366 | | |
367 | | //vui_read = true; |
368 | | |
369 | 4.64k | return DE265_OK; |
370 | 4.69k | } |
371 | | |
372 | | |
373 | | void video_usability_information::dump(int fd) const |
374 | 0 | { |
375 | | //#if (_MSC_VER >= 1500) |
376 | | //#define LOG0(t) loginfo(LogHeaders, t) |
377 | | //#define LOG1(t,d) loginfo(LogHeaders, t,d) |
378 | | //#define LOG2(t,d1,d2) loginfo(LogHeaders, t,d1,d2) |
379 | | //#define LOG3(t,d1,d2,d3) loginfo(LogHeaders, t,d1,d2,d3) |
380 | |
|
381 | 0 | FILE* fh; |
382 | 0 | if (fd==1) fh=stdout; |
383 | 0 | else if (fd==2) fh=stderr; |
384 | 0 | else { return; } |
385 | | |
386 | 0 | #define LOG0(t) log2fh(fh, t) |
387 | 0 | #define LOG1(t,d) log2fh(fh, t,d) |
388 | 0 | #define LOG2(t,d1,d2) log2fh(fh, t,d1,d2) |
389 | 0 | #define LOG3(t,d1,d2,d3) log2fh(fh, t,d1,d2,d3) |
390 | | |
391 | 0 | LOG0("----------------- VUI -----------------\n"); |
392 | 0 | LOG2("sample aspect ratio : %d:%d\n", sar_width,sar_height); |
393 | 0 | LOG1("overscan_info_present_flag : %d\n", overscan_info_present_flag); |
394 | 0 | LOG1("overscan_appropriate_flag : %d\n", overscan_appropriate_flag); |
395 | |
|
396 | 0 | LOG1("video_signal_type_present_flag: %d\n", video_signal_type_present_flag); |
397 | 0 | if (video_signal_type_present_flag) { |
398 | 0 | LOG1(" video_format : %s\n", get_video_format_name(video_format)); |
399 | 0 | LOG1(" video_full_range_flag : %d\n", video_full_range_flag); |
400 | 0 | LOG1(" colour_description_present_flag : %d\n", colour_description_present_flag); |
401 | 0 | LOG1(" colour_primaries : %d\n", colour_primaries); |
402 | 0 | LOG1(" transfer_characteristics : %d\n", transfer_characteristics); |
403 | 0 | LOG1(" matrix_coeffs : %d\n", matrix_coeffs); |
404 | 0 | } |
405 | |
|
406 | 0 | LOG1("chroma_loc_info_present_flag: %d\n", chroma_loc_info_present_flag); |
407 | 0 | if (chroma_loc_info_present_flag) { |
408 | 0 | LOG1(" chroma_sample_loc_type_top_field : %d\n", chroma_sample_loc_type_top_field); |
409 | 0 | LOG1(" chroma_sample_loc_type_bottom_field: %d\n", chroma_sample_loc_type_bottom_field); |
410 | 0 | } |
411 | |
|
412 | 0 | LOG1("neutral_chroma_indication_flag: %d\n", neutral_chroma_indication_flag); |
413 | 0 | LOG1("field_seq_flag : %d\n", field_seq_flag); |
414 | 0 | LOG1("frame_field_info_present_flag : %d\n", frame_field_info_present_flag); |
415 | |
|
416 | 0 | LOG1("default_display_window_flag : %d\n", default_display_window_flag); |
417 | 0 | LOG1(" def_disp_win_left_offset : %d\n", def_disp_win_left_offset); |
418 | 0 | LOG1(" def_disp_win_right_offset : %d\n", def_disp_win_right_offset); |
419 | 0 | LOG1(" def_disp_win_top_offset : %d\n", def_disp_win_top_offset); |
420 | 0 | LOG1(" def_disp_win_bottom_offset : %d\n", def_disp_win_bottom_offset); |
421 | |
|
422 | 0 | LOG1("vui_timing_info_present_flag : %d\n", vui_timing_info_present_flag); |
423 | 0 | if (vui_timing_info_present_flag) { |
424 | 0 | LOG1(" vui_num_units_in_tick : %d\n", vui_num_units_in_tick); |
425 | 0 | LOG1(" vui_time_scale : %d\n", vui_time_scale); |
426 | 0 | } |
427 | |
|
428 | 0 | LOG1("vui_poc_proportional_to_timing_flag : %d\n", vui_poc_proportional_to_timing_flag); |
429 | 0 | LOG1("vui_num_ticks_poc_diff_one : %d\n", vui_num_ticks_poc_diff_one); |
430 | |
|
431 | 0 | LOG1("vui_hrd_parameters_present_flag : %d\n", vui_hrd_parameters_present_flag); |
432 | 0 | if (vui_hrd_parameters_present_flag) { |
433 | | //hrd_parameters vui_hrd_parameters; |
434 | 0 | } |
435 | | |
436 | | |
437 | | // --- bitstream restriction --- |
438 | |
|
439 | 0 | LOG1("bitstream_restriction_flag : %d\n", bitstream_restriction_flag); |
440 | 0 | if (bitstream_restriction_flag) { |
441 | 0 | LOG1(" tiles_fixed_structure_flag : %d\n", tiles_fixed_structure_flag); |
442 | 0 | LOG1(" motion_vectors_over_pic_boundaries_flag : %d\n", motion_vectors_over_pic_boundaries_flag); |
443 | 0 | LOG1(" restricted_ref_pic_lists_flag : %d\n", restricted_ref_pic_lists_flag); |
444 | 0 | LOG1(" min_spatial_segmentation_idc : %d\n", min_spatial_segmentation_idc); |
445 | 0 | LOG1(" max_bytes_per_pic_denom : %d\n", max_bytes_per_pic_denom); |
446 | 0 | LOG1(" max_bits_per_min_cu_denom : %d\n", max_bits_per_min_cu_denom); |
447 | 0 | LOG1(" log2_max_mv_length_horizontal : %d\n", log2_max_mv_length_horizontal); |
448 | 0 | LOG1(" log2_max_mv_length_vertical : %d\n", log2_max_mv_length_vertical); |
449 | 0 | } |
450 | |
|
451 | 0 | #undef LOG0 |
452 | 0 | #undef LOG1 |
453 | 0 | #undef LOG2 |
454 | 0 | #undef LOG3 |
455 | | //#endif |
456 | 0 | } |