39 #define MAX_LOG2_MAX_FRAME_NUM (12 + 4)
40 #define MIN_LOG2_MAX_FRAME_NUM 4
62 #define QP(qP,depth) ( (qP)+6*((depth)-8) )
64 #define CHROMA_QP_TABLE_END(d) \
65 QP(0,d), QP(1,d), QP(2,d), QP(3,d), QP(4,d), QP(5,d),\
66 QP(6,d), QP(7,d), QP(8,d), QP(9,d), QP(10,d), QP(11,d),\
67 QP(12,d), QP(13,d), QP(14,d), QP(15,d), QP(16,d), QP(17,d),\
68 QP(18,d), QP(19,d), QP(20,d), QP(21,d), QP(22,d), QP(23,d),\
69 QP(24,d), QP(25,d), QP(26,d), QP(27,d), QP(28,d), QP(29,d),\
70 QP(29,d), QP(30,d), QP(31,d), QP(32,d), QP(32,d), QP(33,d),\
71 QP(34,d), QP(34,d), QP(35,d), QP(35,d), QP(36,d), QP(36,d),\
72 QP(37,d), QP(37,d), QP(37,d), QP(38,d), QP(38,d), QP(38,d),\
73 QP(39,d), QP(39,d), QP(39,d), QP(39,d)
133 { 6,10,13,16,18,23,25,27,
134 10,11,16,18,23,25,27,29,
135 13,16,18,23,25,27,29,31,
136 16,18,23,25,27,29,31,33,
137 18,23,25,27,29,31,33,36,
138 23,25,27,29,31,33,36,38,
139 25,27,29,31,33,36,38,40,
140 27,29,31,33,36,38,40,42
142 9,13,15,17,19,21,22,24,
143 13,13,17,19,21,22,24,25,
144 15,17,19,21,22,24,25,27,
145 17,19,21,22,24,25,27,28,
146 19,21,22,24,25,27,28,30,
147 21,22,24,25,27,28,30,32,
148 22,24,25,27,28,30,32,33,
149 24,25,27,28,30,32,33,35
163 for(i=0; i<cpb_count; i++){
177 int aspect_ratio_info_present_flag;
178 unsigned int aspect_ratio_idc;
182 if( aspect_ratio_info_present_flag ) {
188 sps->
sar= pixel_aspect[aspect_ratio_idc];
287 int i, last = 8, next = 8;
290 memcpy(factors, fallback_list, size*
sizeof(
uint8_t));
296 memcpy(factors, jvt_list, size*
sizeof(
uint8_t));
299 last = factors[scan[i]] = next ? next : last;
334 int profile_idc, level_idc, constraint_set_flags = 0;
336 int i, log2_max_frame_num_minus4;
404 "log2_max_frame_num_minus4 out of range (0-12): %d\n",
405 log2_max_frame_num_minus4);
447 if((
unsigned)sps->
mb_width >= INT_MAX/16 || (
unsigned)sps->
mb_height >= INT_MAX/16 ||
461 #ifndef ALLOW_INTERLACE
476 "values are l:%u r:%u t:%u b:%u\n", crop_left, crop_right,
477 crop_top, crop_bottom);
486 int step_x = 1 << hsub;
493 "chroma samples to preserve alignment.\n",
497 if (crop_left > (
unsigned)INT_MAX / 4 / step_x ||
498 crop_right > (
unsigned)INT_MAX / 4 / step_x ||
499 crop_top > (
unsigned)INT_MAX / 4 / step_y ||
500 crop_bottom> (
unsigned)INT_MAX / 4 / step_y ||
501 (crop_left + crop_right ) * step_x >= width ||
502 (crop_top + crop_bottom) * step_y >= height
504 av_log(h->
avctx,
AV_LOG_ERROR,
"crop values invalid %d %d %d %d / %d %d\n", crop_left, crop_right, crop_top, crop_bottom, width, height);
530 static const char csp[4][5] = {
"Gray",
"420",
"422",
"444" };
531 av_log(h->
avctx,
AV_LOG_DEBUG,
"sps:%u profile:%d/%d poc:%d ref:%d %dx%d %s %s crop:%d/%d/%d/%d %s %s %d/%d b%d reo:%d\n",
563 const int max_qp = 51 + 6*(depth-8);
564 for(i = 0; i < max_qp+1; i++)
573 if ((profile_idc == 66 || profile_idc == 77 ||
576 "Current profile doesn't provide more RBSP data in PPS, skipping\n");
622 |
for( i = 0; i <= num_slice_groups_minus1; i++ ) | | |
623 | run_length[ i ] |1 |ue(
v) |
628 |
for( i = 0; i < num_slice_groups_minus1; i++ ) | | |
630 | top_left_mb[ i ] |1 |ue(
v) |
631 | bottom_right_mb[ i ] |1 |ue(
v) |
639 | slice_group_change_direction_flag |1 |
u(1) |
640 | slice_group_change_rate_minus1 |1 |ue(
v) |
645 | slice_group_id_cnt_minus1 |1 |ue(
v) |
646 |
for( i = 0; i <= slice_group_id_cnt_minus1; i++ | | |
648 | slice_group_id[ i ] |1 |
u(
v) |
691 pps->
cabac ?
"CABAC" :
"CAVLC",