30 #define CABAC_MAX_BIN 31 
  198       110, 110, 124, 125, 140, 153, 125, 127, 140, 109, 111, 143, 127, 111,
 
  201       110, 110, 124, 125, 140, 153, 125, 127, 140, 109, 111, 143, 127, 111,
 
  206       111, 111, 125, 110, 110,  94, 124, 108, 124, 107, 125, 141, 179, 153,
 
  207       125, 107, 125, 141, 179, 153, 125, 107, 125, 141, 179, 153, 125, 140,
 
  208       139, 182, 182, 152, 136, 152, 136, 153, 136, 139, 111, 136, 139, 111,
 
  211       140,  92, 137, 138, 140, 152, 138, 139, 153,  74, 149,  92, 139, 107,
 
  212       122, 152, 140, 179, 166, 182, 140, 227, 122, 197,
 
  214       138, 153, 136, 167, 152, 152,
 
  216       154, 154, 154, 154, 154, 154, 154, 154,
 
  275       125, 110,  94, 110,  95,  79, 125, 111, 110,  78, 110, 111, 111,  95,
 
  278       125, 110,  94, 110,  95,  79, 125, 111, 110,  78, 110, 111, 111,  95,
 
  283       155, 154, 139, 153, 139, 123, 123,  63, 153, 166, 183, 140, 136, 153,
 
  284       154, 166, 183, 140, 136, 153, 154, 166, 183, 140, 136, 153, 154, 170,
 
  285       153, 123, 123, 107, 121, 107, 121, 167, 151, 183, 140, 151, 183, 140,
 
  288       154, 196, 196, 167, 154, 152, 167, 182, 182, 134, 149, 136, 153, 121,
 
  289       136, 137, 169, 194, 166, 167, 154, 167, 137, 182,
 
  291       107, 167, 91, 122, 107, 167,
 
  293       154, 154, 154, 154, 154, 154, 154, 154,
 
  352       125, 110, 124, 110,  95,  94, 125, 111, 111,  79, 125, 126, 111, 111,
 
  355       125, 110, 124, 110,  95,  94, 125, 111, 111,  79, 125, 126, 111, 111,
 
  360       170, 154, 139, 153, 139, 123, 123,  63, 124, 166, 183, 140, 136, 153,
 
  361       154, 166, 183, 140, 136, 153, 154, 166, 183, 140, 136, 153, 154, 170,
 
  362       153, 138, 138, 122, 121, 122, 121, 167, 151, 183, 140, 151, 183, 140,
 
  365       154, 196, 167, 167, 154, 152, 167, 182, 182, 134, 149, 136, 153, 121,
 
  366       136, 122, 169, 208, 166, 167, 154, 152, 167, 182,
 
  368       107, 167, 91, 107, 107, 167,
 
  370       154, 154, 154, 154, 154, 154, 154, 154,
 
  407     {  0,  1,  2,  3, 16, 17, 18, 19, },
 
  408     {  4,  5,  6,  7, 20, 21, 22, 23, },
 
  409     {  8,  9, 10, 11, 24, 25, 26, 27, },
 
  410     { 12, 13, 14, 15, 28, 29, 30, 31, },
 
  411     { 32, 33, 34, 35, 48, 49, 50, 51, },
 
  412     { 36, 37, 38, 39, 52, 53, 54, 55, },
 
  413     { 40, 41, 42, 43, 56, 57, 58, 59, },
 
  414     { 44, 45, 46, 47, 60, 61, 62, 63, },
 
  438     {  0,  2,  5,  9, 14, 20, 27, 35, },
 
  439     {  1,  4,  8, 13, 19, 26, 34, 42, },
 
  440     {  3,  7, 12, 18, 25, 33, 41, 48, },
 
  441     {  6, 11, 17, 24, 32, 40, 47, 53, },
 
  442     { 10, 16, 23, 31, 39, 46, 52, 57, },
 
  443     { 15, 22, 30, 38, 45, 51, 56, 60, },
 
  444     { 21, 29, 37, 44, 50, 55, 59, 62, },
 
  445     { 28, 36, 43, 49, 54, 58, 61, 63, },
 
  488         int m = (init_value >> 4) * 5 - 45;
 
  489         int n = ((init_value & 15) << 3) - 16;
 
  490         int pre = 2 * (((m * av_clip(s->
sh.
slice_qp, 0, 51)) >> 4) + 
n) - 127;
 
  494             pre = 124 + (pre & 1);
 
  498     for (i = 0; i < 4; i++)
 
  546 #define GET_CABAC(ctx) get_cabac(&s->HEVClc->cc, &s->HEVClc->cabac_state[ctx]) 
  568     for (i = 0; i < 4; i++)
 
  630     if (prefix_val >= 5) {
 
  633             suffix_val += 1 << k;
 
  642     return prefix_val + suffix_val;
 
  673     int inc = 0, depth_left = 0, depth_top = 0;
 
  684     inc += (depth_left > ct_depth);
 
  685     inc += (depth_top  > ct_depth);
 
  699         if (log2_cb_size == 3) 
 
  750     for (i = 0; i < 4; i++)
 
  784     if (nPbW + nPbH == 12)
 
  795     int max = num_ref_idx_lx - 1;
 
  796     int max_ctx = 
FFMIN(max, 2);
 
  895                                                    int log2_size, 
int *last_scx_prefix, 
int *last_scy_prefix)
 
  898     int max = (log2_size << 1) - 1;
 
  899     int ctx_offset, ctx_shift;
 
  902         ctx_offset = 3 * (log2_size - 2)  + ((log2_size - 1) >> 2);
 
  903         ctx_shift = (log2_size + 1) >> 2;
 
  906         ctx_shift = log2_size - 2;
 
  911     *last_scx_prefix = i;
 
  917     *last_scy_prefix = i;
 
  921                                                  int last_significant_coeff_prefix)
 
  924     int length = (last_significant_coeff_prefix >> 1) - 1;
 
  927     for (i = 1; i < 
length; i++)
 
  936     inc = 
FFMIN(ctx_cg, 1) + (c_idx>0 ? 2 : 0);
 
  943     int inc = ctx_idx_map[(y_c << 2) + x_c] + offset;
 
  973     int last_coeff_abs_level_remaining;
 
  983         for (i = 0; i < rc_rice_param; i++)
 
  985         last_coeff_abs_level_remaining = (prefix << rc_rice_param) + suffix;
 
  987         int prefix_minus3 = prefix - 3;
 
  988         for (i = 0; i < prefix_minus3 + rc_rice_param; i++)
 
  990         last_coeff_abs_level_remaining = (((1 << prefix_minus3) + 3 - 1)
 
  991                                               << rc_rice_param) + suffix;
 
  993     return last_coeff_abs_level_remaining;
 
 1001     for (i = 0; i < nb; i++)
 
 1007                                 int log2_trafo_size, 
enum ScanType scan_idx,
 
 1010 #define GET_COORD(offset, n)                                    \ 
 1012         x_c = (x_cg << 2) + scan_x_off[n];                      \ 
 1013         y_c = (y_cg << 2) + scan_y_off[n];                      \ 
 1016     int transform_skip_flag = 0;
 
 1018     int last_significant_coeff_x, last_significant_coeff_y;
 
 1022     int greater1_ctx = 1;
 
 1024     int num_last_subset;
 
 1025     int x_cg_last_sig, y_cg_last_sig;
 
 1027     const uint8_t *scan_x_cg, *scan_y_cg, *scan_x_off, *scan_y_off;
 
 1035     uint8_t significant_coeff_group_flag[8][8] = {{0}};
 
 1036     int explicit_rdpcm_flag = 0;
 
 1037     int explicit_rdpcm_dir_flag;
 
 1039     int trafo_size = 1 << log2_trafo_size;
 
 1041     int qp,
shift,add,scale,scale_m;
 
 1042     static const uint8_t level_scale[] = { 40, 45, 51, 57, 64, 72 };
 
 1048     memset(coeffs, 0, trafo_size * trafo_size * 
sizeof(int16_t));
 
 1052         static const int qp_c[] = { 29, 30, 31, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37 };
 
 1053         static const uint8_t rem6[51 + 4 * 6 + 1] = {
 
 1054             0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2,
 
 1055             3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5,
 
 1056             0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3,
 
 1057             4, 5, 0, 1, 2, 3, 4, 5, 0, 1
 
 1060         static const uint8_t div6[51 + 4 * 6 + 1] = {
 
 1061             0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3,  3,  3,
 
 1062             3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,  6,  6,
 
 1063             7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
 
 1064             10, 10, 11, 11, 11, 11, 11, 11, 12, 12
 
 1066         int qp_y = lc->
qp_y;
 
 1069             log2_trafo_size <= s->ps.pps->log2_max_transform_skip_block_size) {
 
 1092                     qp = qp_c[qp_i - 30];
 
 1104         add      = 1 << (shift-1);
 
 1105         scale    = level_scale[rem6[qp]] << (div6[qp]);
 
 1114             matrix_id = 3 * matrix_id + c_idx;
 
 1116             scale_matrix = sl->
sl[log2_trafo_size - 2][matrix_id];
 
 1117             if (log2_trafo_size >= 4)
 
 1118                 dc_scale = sl->
sl_dc[log2_trafo_size - 4][matrix_id];
 
 1130         if (explicit_rdpcm_flag) {
 
 1136                                            &last_significant_coeff_x, &last_significant_coeff_y);
 
 1138     if (last_significant_coeff_x > 3) {
 
 1140         last_significant_coeff_x = (1 << ((last_significant_coeff_x >> 1) - 1)) *
 
 1141         (2 + (last_significant_coeff_x & 1)) +
 
 1145     if (last_significant_coeff_y > 3) {
 
 1147         last_significant_coeff_y = (1 << ((last_significant_coeff_y >> 1) - 1)) *
 
 1148         (2 + (last_significant_coeff_y & 1)) +
 
 1153         FFSWAP(
int, last_significant_coeff_x, last_significant_coeff_y);
 
 1155     x_cg_last_sig = last_significant_coeff_x >> 2;
 
 1156     y_cg_last_sig = last_significant_coeff_y >> 2;
 
 1160         int last_x_c = last_significant_coeff_x & 3;
 
 1161         int last_y_c = last_significant_coeff_y & 3;
 
 1166         if (trafo_size == 4) {
 
 1169         } 
else if (trafo_size == 8) {
 
 1173         } 
else if (trafo_size == 16) {
 
 1189         num_coeff = 
horiz_scan8x8_inv[last_significant_coeff_y][last_significant_coeff_x];
 
 1196         num_coeff = 
horiz_scan8x8_inv[last_significant_coeff_x][last_significant_coeff_y];
 
 1200     num_last_subset = (num_coeff - 1) >> 4;
 
 1202     for (i = num_last_subset; i >= 0; i--) {
 
 1204         int x_cg, y_cg, x_c, y_c, pos;
 
 1205         int implicit_non_zero_coeff = 0;
 
 1206         int64_t trans_coeff_level;
 
 1211         uint8_t significant_coeff_flag_idx[16];
 
 1212         uint8_t nb_significant_coeff_flag = 0;
 
 1214         x_cg = scan_x_cg[i];
 
 1215         y_cg = scan_y_cg[i];
 
 1217         if ((i < num_last_subset) && (i > 0)) {
 
 1219             if (x_cg < (1 << (log2_trafo_size - 2)) - 1)
 
 1220                 ctx_cg += significant_coeff_group_flag[x_cg + 1][y_cg];
 
 1221             if (y_cg < (1 << (log2_trafo_size - 2)) - 1)
 
 1222                 ctx_cg += significant_coeff_group_flag[x_cg][y_cg + 1];
 
 1224             significant_coeff_group_flag[x_cg][y_cg] =
 
 1226             implicit_non_zero_coeff = 1;
 
 1228             significant_coeff_group_flag[x_cg][y_cg] =
 
 1229             ((x_cg == x_cg_last_sig && y_cg == y_cg_last_sig) ||
 
 1230              (x_cg == 0 && y_cg == 0));
 
 1233         last_scan_pos = num_coeff - offset - 1;
 
 1235         if (i == num_last_subset) {
 
 1236             n_end = last_scan_pos - 1;
 
 1237             significant_coeff_flag_idx[0] = last_scan_pos;
 
 1238             nb_significant_coeff_flag = 1;
 
 1243         if (x_cg < ((1 << log2_trafo_size) - 1) >> 2)
 
 1244             prev_sig = !!significant_coeff_group_flag[x_cg + 1][y_cg];
 
 1245         if (y_cg < ((1 << log2_trafo_size) - 1) >> 2)
 
 1246             prev_sig += (!!significant_coeff_group_flag[x_cg][y_cg + 1] << 1);
 
 1248         if (significant_coeff_group_flag[x_cg][y_cg] && n_end >= 0) {
 
 1249             static const uint8_t ctx_idx_map[] = {
 
 1250                 0, 1, 4, 5, 2, 3, 4, 5, 6, 6, 8, 8, 7, 7, 8, 8, 
 
 1251                 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
 
 1252                 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
 
 1253                 2, 1, 0, 0, 2, 1, 0, 0, 2, 1, 0, 0, 2, 1, 0, 0, 
 
 1254                 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2  
 
 1260                 ctx_idx_map_p = (
uint8_t*) &ctx_idx_map[4 * 16];
 
 1264                     scf_offset = 14 + 27;
 
 1269                 if (log2_trafo_size == 2) {
 
 1270                     ctx_idx_map_p = (
uint8_t*) &ctx_idx_map[0];
 
 1272                     ctx_idx_map_p = (
uint8_t*) &ctx_idx_map[(prev_sig + 1) << 4];
 
 1274                         if ((x_cg > 0 || y_cg > 0))
 
 1276                         if (log2_trafo_size == 3) {
 
 1277                             scf_offset += (scan_idx == 
SCAN_DIAG) ? 9 : 15;
 
 1282                         if (log2_trafo_size == 3)
 
 1289             for (n = n_end; n > 0; n--) {
 
 1290                 x_c = scan_x_off[
n];
 
 1291                 y_c = scan_y_off[
n];
 
 1293                     significant_coeff_flag_idx[nb_significant_coeff_flag] = 
n;
 
 1294                     nb_significant_coeff_flag++;
 
 1295                     implicit_non_zero_coeff = 0;
 
 1298             if (implicit_non_zero_coeff == 0) {
 
 1304                         scf_offset = 16 + 27;
 
 1313                         scf_offset = 2 + scf_offset;
 
 1317                     significant_coeff_flag_idx[nb_significant_coeff_flag] = 0;
 
 1318                     nb_significant_coeff_flag++;
 
 1321                 significant_coeff_flag_idx[nb_significant_coeff_flag] = 0;
 
 1322                 nb_significant_coeff_flag++;
 
 1326         n_end = nb_significant_coeff_flag;
 
 1330             int first_nz_pos_in_cg;
 
 1331             int last_nz_pos_in_cg;
 
 1332             int c_rice_param = 0;
 
 1333             int first_greater1_coeff_idx = -1;
 
 1334             uint8_t coeff_abs_level_greater1_flag[8];
 
 1335             uint16_t coeff_sign_flag;
 
 1342             int ctx_set = (i > 0 && c_idx == 0) ? 2 : 0;
 
 1346                     sb_type = 2 * (c_idx == 0 ? 1 : 0);
 
 1348                     sb_type = 2 * (c_idx == 0 ? 1 : 0) + 1;
 
 1352             if (!(i == num_last_subset) && greater1_ctx == 0)
 
 1355             last_nz_pos_in_cg = significant_coeff_flag_idx[0];
 
 1357             for (m = 0; m < (n_end > 8 ? 8 : n_end); m++) {
 
 1358                 int inc = (ctx_set << 2) + greater1_ctx;
 
 1359                 coeff_abs_level_greater1_flag[
m] =
 
 1361                 if (coeff_abs_level_greater1_flag[m]) {
 
 1363                     if (first_greater1_coeff_idx == -1)
 
 1364                         first_greater1_coeff_idx = 
m;
 
 1365                 } 
else if (greater1_ctx > 0 && greater1_ctx < 3) {
 
 1369             first_nz_pos_in_cg = significant_coeff_flag_idx[n_end - 1];
 
 1374                  (pred_mode_intra == 10 || pred_mode_intra  ==  26 )) ||
 
 1375                  explicit_rdpcm_flag)
 
 1378                 sign_hidden = (last_nz_pos_in_cg - first_nz_pos_in_cg >= 4);
 
 1380             if (first_greater1_coeff_idx != -1) {
 
 1384                 coeff_sign_flag = 
coeff_sign_flag_decode(s, nb_significant_coeff_flag) << (16 - nb_significant_coeff_flag);
 
 1386                 coeff_sign_flag = 
coeff_sign_flag_decode(s, nb_significant_coeff_flag - 1) << (16 - (nb_significant_coeff_flag - 1));
 
 1389             for (m = 0; m < n_end; m++) {
 
 1390                 n = significant_coeff_flag_idx[
m];
 
 1393                     trans_coeff_level = 1 + coeff_abs_level_greater1_flag[
m];
 
 1394                     if (trans_coeff_level == ((m == first_greater1_coeff_idx) ? 3 : 2)) {
 
 1397                         trans_coeff_level += last_coeff_abs_level_remaining;
 
 1398                         if (trans_coeff_level > (3 << c_rice_param))
 
 1401                             int c_rice_p_init = lc->
stat_coeff[sb_type] / 4;
 
 1402                             if (last_coeff_abs_level_remaining >= (3 << c_rice_p_init))
 
 1404                             else if (2 * last_coeff_abs_level_remaining < (1 << c_rice_p_init))
 
 1413                     trans_coeff_level = 1 + last_coeff_abs_level_remaining;
 
 1414                     if (trans_coeff_level > (3 << c_rice_param))
 
 1417                         int c_rice_p_init = lc->
stat_coeff[sb_type] / 4;
 
 1418                         if (last_coeff_abs_level_remaining >= (3 << c_rice_p_init))
 
 1420                         else if (2 * last_coeff_abs_level_remaining < (1 << c_rice_p_init))
 
 1427                     sum_abs += trans_coeff_level;
 
 1428                     if (n == first_nz_pos_in_cg && (sum_abs&1))
 
 1429                         trans_coeff_level = -trans_coeff_level;
 
 1431                 if (coeff_sign_flag >> 15)
 
 1432                     trans_coeff_level = -trans_coeff_level;
 
 1433                 coeff_sign_flag <<= 1;
 
 1436                         if(y_c || x_c || log2_trafo_size < 4) {
 
 1437                             switch(log2_trafo_size) {
 
 1438                                 case 3: pos = (y_c << 3) + x_c; 
break;
 
 1439                                 case 4: pos = ((y_c >> 1) << 3) + (x_c >> 1); 
break;
 
 1440                                 case 5: pos = ((y_c >> 2) << 3) + (x_c >> 2); 
break;
 
 1441                                 default: pos = (y_c << 2) + x_c; 
break;
 
 1443                             scale_m = scale_matrix[pos];
 
 1448                     trans_coeff_level = (trans_coeff_level * (int64_t)scale * (int64_t)scale_m + add) >> shift;
 
 1449                     if(trans_coeff_level < 0) {
 
 1450                         if((~trans_coeff_level) & 0xFffffffffff8000)
 
 1451                             trans_coeff_level = -32768;
 
 1453                         if(trans_coeff_level & 0xffffffffffff8000)
 
 1454                             trans_coeff_level = 32767;
 
 1457                 coeffs[y_c * trafo_size + x_c] = trans_coeff_level;
 
 1464                                     (pred_mode_intra == 10 || pred_mode_intra == 26))) {
 
 1470         if (transform_skip_flag) {
 
 1472                       log2_trafo_size == 2 &&
 
 1475                 for (i = 0; i < 8; i++)
 
 1476                     FFSWAP(int16_t, coeffs[i], coeffs[16 - i - 1]);
 
 1483                                         (pred_mode_intra == 10 || pred_mode_intra == 26))) {
 
 1484                 int mode = explicit_rdpcm_flag ? explicit_rdpcm_dir_flag : (pred_mode_intra == 26);
 
 1491             int max_xy = 
FFMAX(last_significant_coeff_x, last_significant_coeff_y);
 
 1495                 int col_limit = last_significant_coeff_x + last_significant_coeff_y + 4;
 
 1497                     col_limit = 
FFMIN(4, col_limit);
 
 1498                 else if (max_xy < 8)
 
 1499                     col_limit = 
FFMIN(8, col_limit);
 
 1500                 else if (max_xy < 12)
 
 1501                     col_limit = 
FFMIN(24, col_limit);
 
 1509         for (i = 0; i < (trafo_size * trafo_size); i++) {
 
 1530     case 0: lc->
pu.
mvd.
x = 0;                       
break;
 
 1536     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)
 
static av_unused const int8_t num_bins_in_se[]
number of bin by SyntaxElement. 
 
unsigned int log2_min_cb_size
 
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)
 
const uint8_t ff_hevc_diag_scan4x4_x[16]
 
int ff_hevc_sao_offset_sign_decode(HEVCContext *s)
 
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)
 
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)
 
void ff_hevc_cabac_init(HEVCContext *s, int ctb_addr_ts)
 
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 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_skip)(int16_t *coeffs, int16_t log2_size)
 
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
 
void(* transform_add[4])(uint8_t *_dst, int16_t *coeffs, ptrdiff_t _stride)
 
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)
 
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)
 
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)
 
const uint8_t ff_hevc_diag_scan8x8_y[64]
 
void ff_hevc_save_states(HEVCContext *s, int ctb_addr_ts)
 
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)
 
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
 
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)
 
static void cabac_init_decoder(HEVCContext *s)
 
const uint8_t ff_hevc_diag_scan8x8_x[64]
 
#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)
 
static av_always_inline int coeff_abs_level_remaining_decode(HEVCContext *s, int rc_rice_param)
 
static void cabac_reinit(HEVCLocalContext *lc)
 
static av_always_inline int mvd_sign_flag_decode(HEVCContext *s)
 
int ff_hevc_cu_qp_delta_abs(HEVCContext *s)
 
const uint8_t ff_hevc_diag_scan4x4_y[16]
 
static const uint8_t diag_scan2x2_y[4]
 
void(* idct_4x4_luma)(int16_t *coeffs)
 
int ff_hevc_mvp_lx_flag_decode(HEVCContext *s)
 
#define SAMPLE_CTB(tab, x, y)