32 #define CABAC_MAX_BIN 31 
  200       110, 110, 124, 125, 140, 153, 125, 127, 140, 109, 111, 143, 127, 111,
 
  203       110, 110, 124, 125, 140, 153, 125, 127, 140, 109, 111, 143, 127, 111,
 
  208       111, 111, 125, 110, 110,  94, 124, 108, 124, 107, 125, 141, 179, 153,
 
  209       125, 107, 125, 141, 179, 153, 125, 107, 125, 141, 179, 153, 125, 140,
 
  210       139, 182, 182, 152, 136, 152, 136, 153, 136, 139, 111, 136, 139, 111,
 
  213       140,  92, 137, 138, 140, 152, 138, 139, 153,  74, 149,  92, 139, 107,
 
  214       122, 152, 140, 179, 166, 182, 140, 227, 122, 197,
 
  216       138, 153, 136, 167, 152, 152,
 
  218       154, 154, 154, 154, 154, 154, 154, 154,
 
  277       125, 110,  94, 110,  95,  79, 125, 111, 110,  78, 110, 111, 111,  95,
 
  280       125, 110,  94, 110,  95,  79, 125, 111, 110,  78, 110, 111, 111,  95,
 
  285       155, 154, 139, 153, 139, 123, 123,  63, 153, 166, 183, 140, 136, 153,
 
  286       154, 166, 183, 140, 136, 153, 154, 166, 183, 140, 136, 153, 154, 170,
 
  287       153, 123, 123, 107, 121, 107, 121, 167, 151, 183, 140, 151, 183, 140,
 
  290       154, 196, 196, 167, 154, 152, 167, 182, 182, 134, 149, 136, 153, 121,
 
  291       136, 137, 169, 194, 166, 167, 154, 167, 137, 182,
 
  293       107, 167, 91, 122, 107, 167,
 
  295       154, 154, 154, 154, 154, 154, 154, 154,
 
  354       125, 110, 124, 110,  95,  94, 125, 111, 111,  79, 125, 126, 111, 111,
 
  357       125, 110, 124, 110,  95,  94, 125, 111, 111,  79, 125, 126, 111, 111,
 
  362       170, 154, 139, 153, 139, 123, 123,  63, 124, 166, 183, 140, 136, 153,
 
  363       154, 166, 183, 140, 136, 153, 154, 166, 183, 140, 136, 153, 154, 170,
 
  364       153, 138, 138, 122, 121, 122, 121, 167, 151, 183, 140, 151, 183, 140,
 
  367       154, 196, 167, 167, 154, 152, 167, 182, 182, 134, 149, 136, 153, 121,
 
  368       136, 122, 169, 208, 166, 167, 154, 152, 167, 182,
 
  370       107, 167, 91, 107, 107, 167,
 
  372       154, 154, 154, 154, 154, 154, 154, 154,
 
  409     {  0,  1,  2,  3, 16, 17, 18, 19, },
 
  410     {  4,  5,  6,  7, 20, 21, 22, 23, },
 
  411     {  8,  9, 10, 11, 24, 25, 26, 27, },
 
  412     { 12, 13, 14, 15, 28, 29, 30, 31, },
 
  413     { 32, 33, 34, 35, 48, 49, 50, 51, },
 
  414     { 36, 37, 38, 39, 52, 53, 54, 55, },
 
  415     { 40, 41, 42, 43, 56, 57, 58, 59, },
 
  416     { 44, 45, 46, 47, 60, 61, 62, 63, },
 
  440     {  0,  2,  5,  9, 14, 20, 27, 35, },
 
  441     {  1,  4,  8, 13, 19, 26, 34, 42, },
 
  442     {  3,  7, 12, 18, 25, 33, 41, 48, },
 
  443     {  6, 11, 17, 24, 32, 40, 47, 53, },
 
  444     { 10, 16, 23, 31, 39, 46, 52, 57, },
 
  445     { 15, 22, 30, 38, 45, 51, 56, 60, },
 
  446     { 21, 29, 37, 44, 50, 55, 59, 62, },
 
  447     { 28, 36, 43, 49, 54, 58, 61, 63, },
 
  490         int m = (init_value >> 4) * 5 - 45;
 
  491         int n = ((init_value & 15) << 3) - 16;
 
  492         int pre = 2 * (((m * av_clip(s->
sh.
slice_qp, 0, 51)) >> 4) + 
n) - 127;
 
  496             pre = 124 + (pre & 1);
 
  500     for (i = 0; i < 4; i++)
 
  559 #define GET_CABAC(ctx) get_cabac(&s->HEVClc->cc, &s->HEVClc->cabac_state[ctx]) 
  581     for (i = 0; i < 4; i++)
 
  643     if (prefix_val >= 5) {
 
  646             suffix_val += 1 << k;
 
  657     return prefix_val + suffix_val;
 
  688     int inc = 0, depth_left = 0, depth_top = 0;
 
  699     inc += (depth_left > ct_depth);
 
  700     inc += (depth_top  > ct_depth);
 
  714         if (log2_cb_size == 3) 
 
  765     for (i = 0; i < 4; i++)
 
  799     if (nPbW + nPbH == 12)
 
  810     int max = num_ref_idx_lx - 1;
 
  811     int max_ctx = 
FFMIN(max, 2);
 
  910                                                    int log2_size, 
int *last_scx_prefix, 
int *last_scy_prefix)
 
  913     int max = (log2_size << 1) - 1;
 
  914     int ctx_offset, ctx_shift;
 
  917         ctx_offset = 3 * (log2_size - 2)  + ((log2_size - 1) >> 2);
 
  918         ctx_shift = (log2_size + 1) >> 2;
 
  921         ctx_shift = log2_size - 2;
 
  926     *last_scx_prefix = i;
 
  932     *last_scy_prefix = i;
 
  936                                                  int last_significant_coeff_prefix)
 
  939     int length = (last_significant_coeff_prefix >> 1) - 1;
 
  942     for (i = 1; i < 
length; i++)
 
  951     inc = 
FFMIN(ctx_cg, 1) + (c_idx>0 ? 2 : 0);
 
  958     int inc = ctx_idx_map[(y_c << 2) + x_c] + offset;
 
  988     int last_coeff_abs_level_remaining;
 
  995         for (i = 0; i < rc_rice_param; i++)
 
  997         last_coeff_abs_level_remaining = (prefix << rc_rice_param) + suffix;
 
  999         int prefix_minus3 = prefix - 3;
 
 1001         if (prefix == 
CABAC_MAX_BIN || prefix_minus3 + rc_rice_param >= 31) {
 
 1006         for (i = 0; i < prefix_minus3 + rc_rice_param; i++)
 
 1008         last_coeff_abs_level_remaining = (((1 << prefix_minus3) + 3 - 1)
 
 1009                                               << rc_rice_param) + suffix;
 
 1011     return last_coeff_abs_level_remaining;
 
 1019     for (i = 0; i < nb; i++)
 
 1025                                 int log2_trafo_size, 
enum ScanType scan_idx,
 
 1028 #define GET_COORD(offset, n)                                    \ 
 1030         x_c = (x_cg << 2) + scan_x_off[n];                      \ 
 1031         y_c = (y_cg << 2) + scan_y_off[n];                      \ 
 1034     int transform_skip_flag = 0;
 
 1036     int last_significant_coeff_x, last_significant_coeff_y;
 
 1040     int greater1_ctx = 1;
 
 1042     int num_last_subset;
 
 1043     int x_cg_last_sig, y_cg_last_sig;
 
 1045     const uint8_t *scan_x_cg, *scan_y_cg, *scan_x_off, *scan_y_off;
 
 1053     uint8_t significant_coeff_group_flag[8][8] = {{0}};
 
 1054     int explicit_rdpcm_flag = 0;
 
 1055     int explicit_rdpcm_dir_flag;
 
 1057     int trafo_size = 1 << log2_trafo_size;
 
 1059     int qp,
shift,add,scale,scale_m;
 
 1060     static const uint8_t level_scale[] = { 40, 45, 51, 57, 64, 72 };
 
 1066     memset(coeffs, 0, trafo_size * trafo_size * 
sizeof(int16_t));
 
 1070         static const int qp_c[] = { 29, 30, 31, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37 };
 
 1071         static const uint8_t rem6[51 + 4 * 6 + 1] = {
 
 1072             0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2,
 
 1073             3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5,
 
 1074             0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3,
 
 1075             4, 5, 0, 1, 2, 3, 4, 5, 0, 1
 
 1078         static const uint8_t div6[51 + 4 * 6 + 1] = {
 
 1079             0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3,  3,  3,
 
 1080             3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,  6,  6,
 
 1081             7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
 
 1082             10, 10, 11, 11, 11, 11, 11, 11, 12, 12
 
 1084         int qp_y = lc->
qp_y;
 
 1087             log2_trafo_size <= s->ps.pps->log2_max_transform_skip_block_size) {
 
 1110                     qp = qp_c[qp_i - 30];
 
 1122         add      = 1 << (shift-1);
 
 1123         scale    = level_scale[rem6[qp]] << (div6[qp]);
 
 1132             matrix_id = 3 * matrix_id + c_idx;
 
 1134             scale_matrix = sl->
sl[log2_trafo_size - 2][matrix_id];
 
 1135             if (log2_trafo_size >= 4)
 
 1136                 dc_scale = sl->
sl_dc[log2_trafo_size - 4][matrix_id];
 
 1148         if (explicit_rdpcm_flag) {
 
 1154                                            &last_significant_coeff_x, &last_significant_coeff_y);
 
 1156     if (last_significant_coeff_x > 3) {
 
 1158         last_significant_coeff_x = (1 << ((last_significant_coeff_x >> 1) - 1)) *
 
 1159         (2 + (last_significant_coeff_x & 1)) +
 
 1163     if (last_significant_coeff_y > 3) {
 
 1165         last_significant_coeff_y = (1 << ((last_significant_coeff_y >> 1) - 1)) *
 
 1166         (2 + (last_significant_coeff_y & 1)) +
 
 1171         FFSWAP(
int, last_significant_coeff_x, last_significant_coeff_y);
 
 1173     x_cg_last_sig = last_significant_coeff_x >> 2;
 
 1174     y_cg_last_sig = last_significant_coeff_y >> 2;
 
 1178         int last_x_c = last_significant_coeff_x & 3;
 
 1179         int last_y_c = last_significant_coeff_y & 3;
 
 1184         if (trafo_size == 4) {
 
 1187         } 
else if (trafo_size == 8) {
 
 1191         } 
else if (trafo_size == 16) {
 
 1207         num_coeff = 
horiz_scan8x8_inv[last_significant_coeff_y][last_significant_coeff_x];
 
 1214         num_coeff = 
horiz_scan8x8_inv[last_significant_coeff_x][last_significant_coeff_y];
 
 1218     num_last_subset = (num_coeff - 1) >> 4;
 
 1220     for (i = num_last_subset; i >= 0; i--) {
 
 1222         int x_cg, y_cg, x_c, y_c, pos;
 
 1223         int implicit_non_zero_coeff = 0;
 
 1224         int64_t trans_coeff_level;
 
 1229         uint8_t significant_coeff_flag_idx[16];
 
 1230         uint8_t nb_significant_coeff_flag = 0;
 
 1232         x_cg = scan_x_cg[i];
 
 1233         y_cg = scan_y_cg[i];
 
 1235         if ((i < num_last_subset) && (i > 0)) {
 
 1237             if (x_cg < (1 << (log2_trafo_size - 2)) - 1)
 
 1238                 ctx_cg += significant_coeff_group_flag[x_cg + 1][y_cg];
 
 1239             if (y_cg < (1 << (log2_trafo_size - 2)) - 1)
 
 1240                 ctx_cg += significant_coeff_group_flag[x_cg][y_cg + 1];
 
 1242             significant_coeff_group_flag[x_cg][y_cg] =
 
 1244             implicit_non_zero_coeff = 1;
 
 1246             significant_coeff_group_flag[x_cg][y_cg] =
 
 1247             ((x_cg == x_cg_last_sig && y_cg == y_cg_last_sig) ||
 
 1248              (x_cg == 0 && y_cg == 0));
 
 1251         last_scan_pos = num_coeff - offset - 1;
 
 1253         if (i == num_last_subset) {
 
 1254             n_end = last_scan_pos - 1;
 
 1255             significant_coeff_flag_idx[0] = last_scan_pos;
 
 1256             nb_significant_coeff_flag = 1;
 
 1261         if (x_cg < ((1 << log2_trafo_size) - 1) >> 2)
 
 1262             prev_sig = !!significant_coeff_group_flag[x_cg + 1][y_cg];
 
 1263         if (y_cg < ((1 << log2_trafo_size) - 1) >> 2)
 
 1264             prev_sig += (!!significant_coeff_group_flag[x_cg][y_cg + 1] << 1);
 
 1266         if (significant_coeff_group_flag[x_cg][y_cg] && n_end >= 0) {
 
 1267             static const uint8_t ctx_idx_map[] = {
 
 1268                 0, 1, 4, 5, 2, 3, 4, 5, 6, 6, 8, 8, 7, 7, 8, 8, 
 
 1269                 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
 
 1270                 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
 
 1271                 2, 1, 0, 0, 2, 1, 0, 0, 2, 1, 0, 0, 2, 1, 0, 0, 
 
 1272                 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2  
 
 1278                 ctx_idx_map_p = (
uint8_t*) &ctx_idx_map[4 * 16];
 
 1282                     scf_offset = 14 + 27;
 
 1287                 if (log2_trafo_size == 2) {
 
 1288                     ctx_idx_map_p = (
uint8_t*) &ctx_idx_map[0];
 
 1290                     ctx_idx_map_p = (
uint8_t*) &ctx_idx_map[(prev_sig + 1) << 4];
 
 1292                         if ((x_cg > 0 || y_cg > 0))
 
 1294                         if (log2_trafo_size == 3) {
 
 1295                             scf_offset += (scan_idx == 
SCAN_DIAG) ? 9 : 15;
 
 1300                         if (log2_trafo_size == 3)
 
 1307             for (n = n_end; n > 0; n--) {
 
 1308                 x_c = scan_x_off[
n];
 
 1309                 y_c = scan_y_off[
n];
 
 1311                     significant_coeff_flag_idx[nb_significant_coeff_flag] = 
n;
 
 1312                     nb_significant_coeff_flag++;
 
 1313                     implicit_non_zero_coeff = 0;
 
 1316             if (implicit_non_zero_coeff == 0) {
 
 1322                         scf_offset = 16 + 27;
 
 1331                         scf_offset = 2 + scf_offset;
 
 1335                     significant_coeff_flag_idx[nb_significant_coeff_flag] = 0;
 
 1336                     nb_significant_coeff_flag++;
 
 1339                 significant_coeff_flag_idx[nb_significant_coeff_flag] = 0;
 
 1340                 nb_significant_coeff_flag++;
 
 1344         n_end = nb_significant_coeff_flag;
 
 1348             int first_nz_pos_in_cg;
 
 1349             int last_nz_pos_in_cg;
 
 1350             int c_rice_param = 0;
 
 1351             int first_greater1_coeff_idx = -1;
 
 1352             uint8_t coeff_abs_level_greater1_flag[8];
 
 1353             uint16_t coeff_sign_flag;
 
 1360             int ctx_set = (i > 0 && c_idx == 0) ? 2 : 0;
 
 1364                     sb_type = 2 * (c_idx == 0 ? 1 : 0);
 
 1366                     sb_type = 2 * (c_idx == 0 ? 1 : 0) + 1;
 
 1370             if (!(i == num_last_subset) && greater1_ctx == 0)
 
 1373             last_nz_pos_in_cg = significant_coeff_flag_idx[0];
 
 1375             for (m = 0; m < (n_end > 8 ? 8 : n_end); m++) {
 
 1376                 int inc = (ctx_set << 2) + greater1_ctx;
 
 1377                 coeff_abs_level_greater1_flag[m] =
 
 1379                 if (coeff_abs_level_greater1_flag[m]) {
 
 1381                     if (first_greater1_coeff_idx == -1)
 
 1382                         first_greater1_coeff_idx = m;
 
 1383                 } 
else if (greater1_ctx > 0 && greater1_ctx < 3) {
 
 1387             first_nz_pos_in_cg = significant_coeff_flag_idx[n_end - 1];
 
 1392                  (pred_mode_intra == 10 || pred_mode_intra  ==  26 )) ||
 
 1393                  explicit_rdpcm_flag)
 
 1396                 sign_hidden = (last_nz_pos_in_cg - first_nz_pos_in_cg >= 4);
 
 1398             if (first_greater1_coeff_idx != -1) {
 
 1402                 coeff_sign_flag = 
coeff_sign_flag_decode(s, nb_significant_coeff_flag) << (16 - nb_significant_coeff_flag);
 
 1404                 coeff_sign_flag = 
coeff_sign_flag_decode(s, nb_significant_coeff_flag - 1) << (16 - (nb_significant_coeff_flag - 1));
 
 1407             for (m = 0; m < n_end; m++) {
 
 1408                 n = significant_coeff_flag_idx[m];
 
 1411                     trans_coeff_level = 1 + coeff_abs_level_greater1_flag[m];
 
 1412                     if (trans_coeff_level == ((m == first_greater1_coeff_idx) ? 3 : 2)) {
 
 1415                         trans_coeff_level += last_coeff_abs_level_remaining;
 
 1416                         if (trans_coeff_level > (3 << c_rice_param))
 
 1419                             int c_rice_p_init = lc->
stat_coeff[sb_type] / 4;
 
 1420                             if (last_coeff_abs_level_remaining >= (3 << c_rice_p_init))
 
 1422                             else if (2 * last_coeff_abs_level_remaining < (1 << c_rice_p_init))
 
 1431                     trans_coeff_level = 1 + last_coeff_abs_level_remaining;
 
 1432                     if (trans_coeff_level > (3 << c_rice_param))
 
 1435                         int c_rice_p_init = lc->
stat_coeff[sb_type] / 4;
 
 1436                         if (last_coeff_abs_level_remaining >= (3 << c_rice_p_init))
 
 1438                         else if (2 * last_coeff_abs_level_remaining < (1 << c_rice_p_init))
 
 1445                     sum_abs += trans_coeff_level;
 
 1446                     if (n == first_nz_pos_in_cg && (sum_abs&1))
 
 1447                         trans_coeff_level = -trans_coeff_level;
 
 1449                 if (coeff_sign_flag >> 15)
 
 1450                     trans_coeff_level = -trans_coeff_level;
 
 1451                 coeff_sign_flag <<= 1;
 
 1454                         if(y_c || x_c || log2_trafo_size < 4) {
 
 1455                             switch(log2_trafo_size) {
 
 1456                                 case 3: pos = (y_c << 3) + x_c; 
break;
 
 1457                                 case 4: pos = ((y_c >> 1) << 3) + (x_c >> 1); 
break;
 
 1458                                 case 5: pos = ((y_c >> 2) << 3) + (x_c >> 2); 
break;
 
 1459                                 default: pos = (y_c << 2) + x_c; 
break;
 
 1461                             scale_m = scale_matrix[pos];
 
 1466                     trans_coeff_level = (trans_coeff_level * (int64_t)scale * (int64_t)scale_m + add) >> shift;
 
 1467                     if(trans_coeff_level < 0) {
 
 1468                         if((~trans_coeff_level) & 0xFffffffffff8000)
 
 1469                             trans_coeff_level = -32768;
 
 1471                         if(trans_coeff_level & 0xffffffffffff8000)
 
 1472                             trans_coeff_level = 32767;
 
 1475                 coeffs[y_c * trafo_size + x_c] = trans_coeff_level;
 
 1482                                     (pred_mode_intra == 10 || pred_mode_intra == 26))) {
 
 1488         if (transform_skip_flag) {
 
 1490                       log2_trafo_size == 2 &&
 
 1493                 for (i = 0; i < 8; i++)
 
 1494                     FFSWAP(int16_t, coeffs[i], coeffs[16 - i - 1]);
 
 1501                                         (pred_mode_intra == 10 || pred_mode_intra == 26))) {
 
 1502                 int mode = explicit_rdpcm_flag ? explicit_rdpcm_dir_flag : (pred_mode_intra == 26);
 
 1509             int max_xy = 
FFMAX(last_significant_coeff_x, last_significant_coeff_y);
 
 1513                 int col_limit = last_significant_coeff_x + last_significant_coeff_y + 4;
 
 1515                     col_limit = 
FFMIN(4, col_limit);
 
 1516                 else if (max_xy < 8)
 
 1517                     col_limit = 
FFMIN(8, col_limit);
 
 1518                 else if (max_xy < 12)
 
 1519                     col_limit = 
FFMIN(24, col_limit);
 
 1527         for (i = 0; i < (trafo_size * trafo_size); i++) {
 
 1548     case 0: lc->
pu.
mvd.
x = 0;                       
break;
 
 1554     case 0: lc->
pu.
mvd.
y = 0;                       
break;
 
static av_always_inline int significant_coeff_group_flag_decode(HEVCContext *s, int c_idx, int ctx_cg)
 
void(* dequant)(int16_t *coeffs, int16_t log2_size)
 
static const int8_t num_bins_in_se[]
number of bin by SyntaxElement. 
 
unsigned int log2_min_cb_size
 
#define AVERROR_INVALIDDATA
Invalid data found when processing input. 
 
static int shift(int a, int b)
 
int ff_hevc_split_coding_unit_flag_decode(HEVCContext *s, int ct_depth, int x0, int y0)
 
uint8_t edge_emu_buffer[(MAX_PB_SIZE+7)*EDGE_EMU_BUFFER_STRIDE *2]
 
int transform_skip_rotation_enabled_flag
 
int16_t x
horizontal component of motion vector 
 
int ff_hevc_cbf_luma_decode(HEVCContext *s, int trafo_depth)
 
int ff_hevc_sao_offset_sign_decode(HEVCContext *s)
 
void(* transform_4x4_luma)(int16_t *coeffs)
 
int explicit_rdpcm_enabled_flag
 
int ff_hevc_merge_flag_decode(HEVCContext *s)
 
Macro definitions for various function/variable attributes. 
 
void(* idct[4])(int16_t *coeffs, int col_limit)
 
uint8_t entropy_coding_sync_enabled_flag
 
int ff_hevc_no_residual_syntax_flag_decode(HEVCContext *s)
 
static av_always_inline int significant_coeff_flag_decode_0(HEVCContext *s, int c_idx, int offset)
 
int ff_hevc_split_transform_flag_decode(HEVCContext *s, int log2_trafo_size)
 
int ff_hevc_sao_merge_flag_decode(HEVCContext *s)
 
int ff_hevc_rem_intra_luma_pred_mode_decode(HEVCContext *s)
 
static const uint8_t horiz_scan8x8_inv[8][8]
 
int ff_hevc_inter_pred_idc_decode(HEVCContext *s, int nPbW, int nPbH)
 
int ff_hevc_part_mode_decode(HEVCContext *s, int log2_cb_size)
 
const uint8_t ff_hevc_diag_scan8x8_x[64]
 
static int explicit_rdpcm_flag_decode(HEVCContext *s, int c_idx)
 
static void cabac_init_state(HEVCContext *s)
 
int ff_hevc_prev_intra_luma_pred_flag_decode(HEVCContext *s)
 
static const uint8_t horiz_scan4x4_y[16]
 
uint8_t scaling_list_data_present_flag
 
static int get_bits_count(const GetBitContext *s)
 
void ff_hevc_hls_mvd_coding(HEVCContext *s, int x0, int y0, int log2_cb_size)
 
int ff_hevc_skip_flag_decode(HEVCContext *s, int x0, int y0, int x_cb, int y_cb)
 
int ff_hevc_cbf_cb_cr_decode(HEVCContext *s, int trafo_depth)
 
uint8_t cu_transquant_bypass_flag
 
static av_unused const uint8_t * skip_bytes(CABACContext *c, int n)
Skip n bytes and reset the decoder. 
 
int ff_hevc_log2_res_scale_abs(HEVCContext *s, int idx)
 
int ff_hevc_cu_chroma_qp_offset_idx(HEVCContext *s)
 
static int get_bits_left(GetBitContext *gb)
 
int ff_hevc_cu_transquant_bypass_flag_decode(HEVCContext *s)
 
#define SAMPLE_CTB(tab, x, y)
 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
 
static const uint8_t diag_scan4x4_inv[4][4]
 
int persistent_rice_adaptation_enabled_flag
coded frame dimension in various units 
 
void(* transform_rdpcm)(int16_t *coeffs, int16_t log2_size, int mode)
 
static const int elem_offset[sizeof(num_bins_in_se)]
Offset to ctxIdx 0 in init_values and states, indexed by SyntaxElement. 
 
unsigned int log2_ctb_size
 
static const uint8_t offset[127][2]
 
uint8_t edge_emu_buffer2[(MAX_PB_SIZE+7)*EDGE_EMU_BUFFER_STRIDE *2]
 
int ff_hevc_sao_band_position_decode(HEVCContext *s)
 
static int explicit_rdpcm_dir_flag_decode(HEVCContext *s, int c_idx)
 
uint8_t tiles_enabled_flag
 
static const uint8_t diag_scan8x8_inv[8][8]
 
int ff_hevc_sao_eo_class_decode(HEVCContext *s)
 
static av_always_inline int abs_mvd_greater1_flag_decode(HEVCContext *s)
 
int ff_hevc_res_scale_sign_flag(HEVCContext *s, int idx)
 
static int cabac_init_decoder(HEVCContext *s)
 
uint8_t cabac_state[HEVC_CONTEXTS]
 
GLsizei GLboolean const GLfloat * value
 
int ff_init_cabac_decoder(CABACContext *c, const uint8_t *buf, int buf_size)
 
void(* idct_dc[4])(int16_t *coeffs)
 
static const uint8_t scan_1x1[1]
 
Context Adaptive Binary Arithmetic Coder inline functions. 
 
uint8_t sign_data_hiding_flag
 
static av_always_inline int coeff_abs_level_greater1_flag_decode(HEVCContext *s, int c_idx, int inc)
 
static int av_unused get_cabac_terminate(CABACContext *c)
 
const uint8_t ff_hevc_diag_scan4x4_y[16]
 
static av_always_inline int mvd_decode(HEVCContext *s)
 
int implicit_rdpcm_enabled_flag
 
static const uint8_t horiz_scan2x2_y[4]
 
static const uint8_t horiz_scan4x4_x[16]
 
static av_always_inline int coeff_abs_level_greater2_flag_decode(HEVCContext *s, int c_idx, int inc)
 
int ff_hevc_merge_idx_decode(HEVCContext *s)
 
static av_always_inline void last_significant_coeff_xy_prefix_decode(HEVCContext *s, int c_idx, int log2_size, int *last_scx_prefix, int *last_scy_prefix)
 
uint8_t transform_skip_enabled_flag
 
static const uint8_t diag_scan2x2_x[4]
 
int * ctb_addr_rs_to_ts
CtbAddrRSToTS. 
 
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line. 
 
int ff_hevc_end_of_slice_flag_decode(HEVCContext *s)
 
static av_always_inline int last_significant_coeff_suffix_decode(HEVCContext *s, int last_significant_coeff_prefix)
 
enum PredMode pred_mode
PredMode. 
 
int16_t y
vertical component of motion vector 
 
static const uint8_t horiz_scan2x2_x[4]
 
int transform_skip_context_enabled_flag
 
int ff_hevc_cu_qp_delta_sign_flag(HEVCContext *s)
 
static void skip_bits(GetBitContext *s, int n)
 
void ff_hevc_save_states(HEVCContext *s, int ctb_addr_ts)
 
void(* add_residual[4])(uint8_t *dst, int16_t *res, ptrdiff_t stride)
 
uint8_t scaling_list_enable_flag
 
int ff_hevc_ref_idx_lx_decode(HEVCContext *s, int num_ref_idx_lx)
 
HEVCLocalContext * HEVClc
 
static av_always_inline int abs_mvd_greater0_flag_decode(HEVCContext *s)
 
static const uint8_t diag_scan2x2_inv[2][2]
 
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes. 
 
int ff_hevc_cu_chroma_qp_offset_flag(HEVCContext *s)
 
static av_always_inline int get_cabac_bypass_sign(CABACContext *c, int val)
 
static int av_unused get_cabac_bypass(CABACContext *c)
 
static void load_states(HEVCContext *s)
 
static av_always_inline int significant_coeff_flag_decode(HEVCContext *s, int x_c, int y_c, int offset, const uint8_t *ctx_idx_map)
 
const uint8_t ff_hevc_diag_scan4x4_x[16]
 
GLint GLenum GLboolean GLsizei stride
 
static int hevc_transform_skip_flag_decode(HEVCContext *s, int c_idx)
 
int ff_hevc_intra_chroma_pred_mode_decode(HEVCContext *s)
 
common internal and external API header 
 
static av_always_inline int coeff_sign_flag_decode(HEVCContext *s, uint8_t nb)
 
#define GET_COORD(offset, n)
 
int ff_hevc_sao_type_idx_decode(HEVCContext *s)
 
uint8_t chroma_qp_offset_list_len_minus1
 
const uint8_t ff_hevc_diag_scan8x8_y[64]
 
int ff_hevc_pred_mode_decode(HEVCContext *s)
 
static const int16_t coeffs[]
 
int ff_hevc_mpm_idx_decode(HEVCContext *s)
 
int ff_hevc_pcm_flag_decode(HEVCContext *s)
 
void ff_hevc_hls_residual_coding(HEVCContext *s, int x0, int y0, int log2_trafo_size, enum ScanType scan_idx, int c_idx)
 
static const uint8_t * align_get_bits(GetBitContext *s)
 
#define FFSWAP(type, a, b)
 
static const uint8_t init_values[3][HEVC_CONTEXTS]
Indexed by init_type. 
 
int ff_hevc_sao_offset_abs_decode(HEVCContext *s)
 
int ff_hevc_cabac_init(HEVCContext *s, int ctb_addr_ts)
 
static int cabac_reinit(HEVCLocalContext *lc)
 
static av_always_inline int coeff_abs_level_remaining_decode(HEVCContext *s, int rc_rice_param)
 
mode
Use these values in ebur128_init (or'ed). 
 
static av_always_inline int mvd_sign_flag_decode(HEVCContext *s)
 
int ff_hevc_cu_qp_delta_abs(HEVCContext *s)
 
static const uint8_t diag_scan2x2_y[4]
 
int ff_hevc_mvp_lx_flag_decode(HEVCContext *s)