29 #define BITSTREAM_READER_LE    71     int         pos, 
i, j, codes_per_row, prefix, not_last_row;
    72     uint16_t    codewords[256]; 
    78         codes_per_row = 1 << cb->
xbits[
i];
    79         not_last_row  = (i != cb->
num_rows - 1);
    80         prefix        = ((1 << 
i) - 1) << (cb->
xbits[
i] + not_last_row);
    82         for (j = 0; j < codes_per_row; j++) {
    86             bits[pos] = i + cb->
xbits[
i] + not_last_row;
    90             codewords[pos] = 
inv_bits((prefix | j), bits[pos]);
   107     static int initialized_vlcs = 0;
   109     if (initialized_vlcs)
   111     for (i = 0; i < 8; i++) {
   112         ivi_mb_vlc_tabs[
i].
table = table_data + i * 2 * 8192;
   115         ivi_blk_vlc_tabs[
i].
table = table_data + (i * 2 + 1) * 8192;
   119     initialized_vlcs = 1;
   155         huff_tab->
tab = (which_tab) ? &ivi_blk_vlc_tabs[7]
   156             : &ivi_mb_vlc_tabs [7];
   167             for (i = 0; i < new_huff.
num_rows; i++)
   181                            "Error while initializing custom vlc table!\n");
   188             huff_tab->
tab = (which_tab) ? &ivi_blk_vlc_tabs[huff_tab->
tab_sel]
   189                 : &ivi_mb_vlc_tabs [huff_tab->
tab_sel];
   205     for (p = 0; p < 3; p++) {
   207         for (b = 0; b < planes[p].
num_bands; b++) {
   208             av_freep(&planes[p].bands[b].bufs[0]);
   209             av_freep(&planes[p].bands[b].bufs[1]);
   210             av_freep(&planes[p].bands[b].bufs[2]);
   212             if (planes[p].bands[b].blk_vlc.cust_tab.table)
   215                 av_freep(&planes[p].bands[b].tiles[t].mbs);
   216             av_freep(&planes[p].bands[b].tiles);
   225     uint32_t    b_width, b_height, align_fac, width_aligned, height_aligned, buf_size;
   240     for (p = 0; p < 3; p++) {
   242         if (!planes[p].bands)
   253         align_fac       = p ? 8 : 16;
   254         width_aligned   = 
FFALIGN(b_width , align_fac);
   255         height_aligned  = 
FFALIGN(b_height, align_fac);
   256         buf_size        = width_aligned * height_aligned * 
sizeof(int16_t);
   258         for (b = 0; b < planes[p].
num_bands; b++) {
   259             band = &planes[p].
bands[
b]; 
   262             band->
width    = b_width;
   264             band->
pitch    = width_aligned;
   265             band->
aheight  = height_aligned;
   269             if (!band->
bufs[0] || !band->
bufs[1])
   288     int         p, 
b, 
x, 
y, x_tiles, y_tiles, t_width, t_height;
   292     for (p = 0; p < 3; p++) {
   293         t_width  = !p ? tile_width  : (tile_width  + 3) >> 2;
   294         t_height = !p ? tile_height : (tile_height + 3) >> 2;
   296         if (!p && planes[0].num_bands == 4) {
   300         if(t_width<=0 || t_height<=0)
   303         for (b = 0; b < planes[p].
num_bands; b++) {
   304             band = &planes[p].
bands[
b];
   320             for (y = 0; y < band->
height; y += t_height) {
   321                 for (x = 0; x < band->
width; x += t_width) {
   397     int         mbn, 
blk, num_blocks, num_coeffs, blk_size, scan_pos, 
run, 
val,
   404     void (*mc_with_delta_func)(int16_t *
buf, 
const int16_t *ref_buf, uint32_t pitch, 
int mc_type);
   405     void (*mc_no_delta_func)  (int16_t *
buf, 
const int16_t *ref_buf, uint32_t pitch, 
int mc_type);
   406     const uint16_t  *base_tab;
   412     col_mask   = blk_size - 1; 
   413     num_blocks = (band->
mb_size != blk_size) ? 4 : 1; 
   414     num_coeffs = blk_size * blk_size;
   423     for (mbn = 0, mb = tile->
mbs; mbn < tile->num_MBs; mb++, mbn++) {
   424         is_intra = !mb->
type;
   433             quant = scale_tab[
quant];
   439                 mc_type = ((mv_y & 1) << 1) | (mv_x & 1);
   444                 int dmv_x, dmv_y, cx, cy;
   451                 if (   mb->
xpos + dmv_x < 0
   453                     || mb->
ypos + dmv_y < 0
   460         for (blk = 0; blk < num_blocks; blk++) {
   463                 buf_offs += blk_size;
   464             } 
else if (blk == 2) {
   465                 buf_offs -= blk_size;
   466                 buf_offs += blk_size * band->
pitch;
   476                 memset(trvec, 0, num_coeffs*
sizeof(trvec[0])); 
   477                 memset(col_flags, 0, 
sizeof(col_flags));      
   479                 while (scan_pos <= num_coeffs) {
   500                     if (scan_pos >= (
unsigned)num_coeffs)
   502                     pos = band->
scan[scan_pos];
   505                         av_dlog(avctx, 
"Val = 0 encountered!\n");
   507                     q = (base_tab[pos] * 
quant) >> 9;
   509                         val = val * q + 
FFSIGN(val) * (((q ^ 1) - 1) >> 1);
   511                     col_flags[pos & col_mask] |= !!
val; 
   514                 if (scan_pos >= num_coeffs && sym != rvmap->
eob_sym)
   521                     col_flags[0] |= !!prev_dc;
   529                                     band->
pitch, col_flags);
   533                     mc_with_delta_func(band->
buf + buf_offs,
   535                                        band->
pitch, mc_type);
   542                                            band->
pitch, blk_size);
   544                     mc_no_delta_func(band->
buf + buf_offs,
   546                                      band->
pitch, mc_type);
   570     int             x, 
y, need_mc, mbn, 
blk, num_blocks, mv_x, mv_y, mc_type;
   571     int             offs, mb_offset, row_offset;
   575     void (*mc_no_delta_func)(int16_t *
buf, 
const int16_t *ref_buf, uint32_t pitch,
   580                "parameters %d in ivi_process_empty_tile()\n",
   622                     int dmv_x, dmv_y, cx, cy;
   629                     if (   mb->
xpos + dmv_x < 0
   631                         || mb->
ypos + dmv_y < 0
   652         for (mbn = 0, mb = tile->
mbs; mbn < tile->num_MBs; mb++, mbn++) {
   658                 mc_type = ((mv_y & 1) << 1) | (mv_x & 1);
   663             for (blk = 0; blk < num_blocks; blk++) {
   666                 mc_no_delta_func(band->
buf + offs,
   668                                  band->
pitch, mc_type);
   675         for (y = 0; y < tile->
height; y++) {
   676             memcpy(dst, src, tile->
width*
sizeof(band->
buf[0]));
   690     int16_t     *
src, checksum;
   695     for (y = 0; y < band->
height; src += band->
pitch, y++)
   696         for (x = 0; x < band->
width; x++)
   721     for (y = 0; y < plane->
height; y++) {
   722         for (x = 0; x < plane->
width; x++)
   723             dst[x] = av_clip_uint8(src[x] + 128);
   740     int         result, 
i, 
t, idx1, idx2, pos;
   766     for (i = 0; i < band->
num_corr; i++) {
   767         idx1 = band->
corr[i * 2];
   768         idx2 = band->
corr[i * 2 + 1];
   793             av_dlog(avctx, 
"Empty tile encountered!\n");
   817     for (i = band->
num_corr-1; i >= 0; i--) {
   818         idx1 = band->
corr[i*2];
   819         idx2 = band->
corr[i*2+1];
   830         uint16_t chksum = ivi_calc_band_checksum(band);
   833                    "Band checksum mismatch! Plane %d, band %d, received: %x, calculated: %x\n",
   850     int             buf_size = avpkt->
size;
   860                "Error while decoding picture header: %d\n", result);
   877         for (p = 0; p < 3; p++) {
   882                            "Error while decoding band: %d, plane: %d\n", b, p);
   940 #if IVI4_STREAM_ANALYSER   944     if (ctx->uses_tiling)
   946     if (ctx->has_b_frames)
   952     if (ctx->uses_fullpel)
   968     {8,  {0, 4, 5, 4, 4, 4, 6, 6}},
   969     {12, {0, 2, 2, 3, 3, 3, 3, 5, 3, 2, 2, 2}},
   970     {12, {0, 2, 3, 4, 3, 3, 3, 3, 4, 3, 2, 2}},
   971     {12, {0, 3, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2}},
   972     {13, {0, 4, 4, 3, 3, 3, 3, 2, 3, 3, 2, 1, 1}},
   973     {9,  {0, 4, 4, 4, 4, 3, 3, 3, 2}},
   974     {10, {0, 4, 4, 4, 4, 3, 3, 2, 2, 2}},
   975     {12, {0, 4, 4, 4, 3, 3, 2, 3, 2, 2, 2, 2}}
   979     {10, {1, 2, 3, 4, 4, 7, 5, 5, 4, 1}},
   980     {11, {2, 3, 4, 4, 4, 7, 5, 4, 3, 3, 2}},
   981     {12, {2, 4, 5, 5, 5, 5, 6, 4, 4, 3, 1, 1}},
   982     {13, {3, 3, 4, 4, 5, 6, 6, 4, 4, 3, 2, 1, 1}},
   983     {11, {3, 4, 4, 5, 5, 5, 6, 5, 4, 2, 2}},
   984     {13, {3, 4, 5, 5, 5, 5, 6, 4, 3, 3, 2, 1, 1}},
   985     {13, {3, 4, 5, 5, 5, 6, 5, 4, 3, 3, 2, 1, 1}},
   986     {9,  {3, 4, 4, 5, 5, 5, 6, 5, 5}}
   994     0,  8, 16, 24, 32, 40, 48, 56,
   995     1,  9, 17, 25, 33, 41, 49, 57,
   996     2, 10, 18, 26, 34, 42, 50, 58,
   997     3, 11, 19, 27, 35, 43, 51, 59,
   998     4, 12, 20, 28, 36, 44, 52, 60,
   999     5, 13, 21, 29, 37, 45, 53, 61,
  1000     6, 14, 22, 30, 38, 46, 54, 62,
  1001     7, 15, 23, 31, 39, 47, 55, 63
  1005      0,  1,  2,  3,  4,  5,  6,  7,
  1006      8,  9, 10, 11, 12, 13, 14, 15,
  1007     16, 17, 18, 19, 20, 21, 22, 23,
  1008     24, 25, 26, 27, 28, 29, 30, 31,
  1009     32, 33, 34, 35, 36, 37, 38, 39,
  1010     40, 41, 42, 43, 44, 45, 46, 47,
  1011     48, 49, 50, 51, 52, 53, 54, 55,
  1012     56, 57, 58, 59, 60, 61, 62, 63
  1016     0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15
  1028     {1,  1,  0,  1,  1,  0,  1,  1,  2,  2,  1,  1,  1,  1,  3,  3,
  1029      1,  1,  2,  2,  1,  1,  4,  4,  1,  1,  1,  1,  2,  2,  5,  5,
  1030      1,  1,  3,  3,  1,  1,  6,  6,  1,  2,  1,  2,  7,  7,  1,  1,
  1031      8,  8,  1,  1,  4,  2,  1,  4,  2,  1,  3,  3,  1,  1,  1,  9,
  1032      9,  1,  2,  1,  2,  1,  5,  5,  1,  1, 10, 10,  1,  1,  3,  3,
  1033      2,  2,  1,  1, 11, 11,  6,  4,  4,  1,  6,  1,  2,  1,  2, 12,
  1034      8,  1, 12,  7,  8,  7,  1, 16,  1, 16,  1,  3,  3, 13,  1, 13,
  1035      2,  2,  1, 15,  1,  5, 14, 15,  1,  5, 14,  1, 17,  8, 17,  8,
  1036      1,  4,  4,  2,  2,  1, 25, 25, 24, 24,  1,  3,  1,  3,  1,  8,
  1037      6,  7,  6,  1, 18,  8, 18,  1,  7, 23,  2,  2, 23,  1,  1, 21,
  1038     22,  9,  9, 22, 19,  1, 21,  5, 19,  5,  1, 33, 20, 33, 20,  8,
  1039      4,  4,  1, 32,  2,  2,  8,  3, 32, 26,  3,  1,  7,  7, 26,  6,
  1040      1,  6,  1,  1, 16,  1, 10,  1, 10,  2, 16, 29, 28,  2, 29, 28,
  1041      1, 27,  5,  8,  5, 27,  1,  8,  3,  7,  3, 31, 41, 31,  1, 41,
  1042      6,  1,  6,  7,  4,  4,  1,  1,  2,  1,  2, 11, 34, 30, 11,  1,
  1043     30, 15, 15, 34, 36, 40, 36, 40, 35, 35, 37, 37, 39, 39, 38, 38},
  1046     { 1,  -1,   0,   2,  -2,   0,   3,  -3,   1,  -1,   4,  -4,   5,  -5,   1,  -1,
  1047       6,  -6,   2,  -2,   7,  -7,   1,  -1,   8,  -8,   9,  -9,   3,  -3,   1,  -1,
  1048      10, -10,   2,  -2,  11, -11,   1,  -1,  12,   4, -12,  -4,   1,  -1,  13, -13,
  1049       1,  -1,  14, -14,   2,   5,  15,  -2,  -5, -15,  -3,   3,  16, -16,  17,   1,
  1050      -1, -17,   6,  18,  -6, -18,   2,  -2,  19, -19,   1,  -1,  20, -20,   4,  -4,
  1051       7,  -7,  21, -21,   1,  -1,   2,   3,  -3,  22,  -2, -22,   8,  23,  -8,   1,
  1052       2, -23,  -1,   2,  -2,  -2,  24,   1, -24,  -1,  25,   5,  -5,   1, -25,  -1,
  1053       9,  -9,  26,   1, -26,   3,   1,  -1,  27,  -3,  -1, -27,   1,   3,  -1,  -3,
  1054      28,  -4,   4,  10, -10, -28,   1,  -1,   1,  -1,  29,   6, -29,  -6,  30,  -4,
  1055       3,   3,  -3, -30,   1,   4,  -1,  31,  -3,   1,  11, -11,  -1, -31,  32,  -1,
  1056      -1,   2,  -2,   1,   1, -32,   1,   4,  -1,  -4,  33,  -1,   1,   1,  -1,   5,
  1057       5,  -5, -33,  -1, -12,  12,  -5,  -7,   1,   1,   7,  34,   4,  -4,  -1,   4,
  1058     -34,  -4,  35,  36,  -2, -35,  -2, -36,   2,  13,   2,  -1,   1, -13,   1,  -1,
  1059      37,   1,  -5,   6,   5,  -1,  38,  -6,  -8,   5,   8,  -1,   1,   1, -37,  -1,
  1060       5,  39,  -5,  -5,   6,  -6, -38, -39, -14,  40,  14,   2,   1,   1,  -2, -40,
  1061      -1,  -2,   2,  -1,  -1,  -1,   1,   1,   1,  -1,   1,  -1,   1,  -1,   1,  -1}
  1067     {0,  1,  1,  2,  2,  3,  3,  4,  4,  5,  5,  6,  8,  6,  8,  7,
  1068      7,  9,  9, 10, 10, 11, 11,  1, 12,  1, 12, 13, 13, 16, 14, 16,
  1069     14, 15, 15, 17, 17, 18,  0, 18, 19, 20, 21, 19, 22, 21, 20, 22,
  1070     25, 24,  2, 25, 24, 23, 23,  2, 26, 28, 26, 28, 29, 27, 29, 27,
  1071     33, 33,  1, 32,  1,  3, 32, 30, 36,  3, 36, 30, 31, 31, 35, 34,
  1072     37, 41, 34, 35, 37,  4, 41,  4, 49,  8,  8, 49, 40, 38,  5, 38,
  1073     40, 39,  5, 39, 42, 43, 42,  7, 57,  6, 43, 44,  6, 50,  7, 44,
  1074     57, 48, 50, 48, 45, 45, 46, 47, 51, 46, 47, 58,  1, 51, 58,  1,
  1075     52, 59, 53,  9, 52, 55, 55, 59, 53, 56, 54, 56, 54,  9, 64, 64,
  1076     60, 63, 60, 63, 61, 62, 61, 62,  2, 10,  2, 10, 11,  1, 11, 13,
  1077     12,  1, 12, 13, 16, 16,  8,  8, 14,  3,  3, 15, 14, 15,  4,  4,
  1078      1, 17, 17,  5,  1,  7,  7,  5,  6,  1,  2,  2,  6, 22,  1, 25,
  1079     21, 22,  8, 24,  1, 21, 25, 24,  8, 18, 18, 23,  9, 20, 23, 33,
  1080     29, 33, 20,  1, 19,  1, 29, 36,  9, 36, 19, 41, 28, 57, 32,  3,
  1081     28,  3,  1, 27, 49, 49,  1, 32, 26, 26,  2,  4,  4,  7, 57, 41,
  1082      2,  7, 10,  5, 37, 16, 10, 27,  8,  8, 13, 16, 37, 13,  1,  5},
  1085     {0,   1,  -1,   1,  -1,   1,  -1,   1,  -1,   1,  -1,   1,   1,  -1,  -1,   1,
  1086     -1,   1,  -1,   1,  -1,   1,  -1,   2,   1,  -2,  -1,   1,  -1,   1,   1,  -1,
  1087     -1,   1,  -1,   1,  -1,   1,   0,  -1,   1,   1,   1,  -1,   1,  -1,  -1,  -1,
  1088      1,   1,   2,  -1,  -1,   1,  -1,  -2,   1,   1,  -1,  -1,   1,   1,  -1,  -1,
  1089      1,  -1,   3,   1,  -3,   2,  -1,   1,   1,  -2,  -1,  -1,  -1,   1,   1,   1,
  1090      1,   1,  -1,  -1,  -1,   2,  -1,  -2,   1,   2,  -2,  -1,   1,   1,   2,  -1,
  1091     -1,   1,  -2,  -1,   1,   1,  -1,   2,   1,   2,  -1,   1,  -2,  -1,  -2,  -1,
  1092     -1,   1,   1,  -1,   1,  -1,   1,   1,   1,  -1,  -1,   1,   4,  -1,  -1,  -4,
  1093      1,   1,   1,   2,  -1,  -1,   1,  -1,  -1,   1,  -1,  -1,   1,  -2,   1,  -1,
  1094      1,   1,  -1,  -1,   1,   1,  -1,  -1,   3,   2,  -3,  -2,   2,   5,  -2,   2,
  1095      2,  -5,  -2,  -2,  -2,   2,  -3,   3,   2,   3,  -3,   2,  -2,  -2,   3,  -3,
  1096      6,   2,  -2,   3,  -6,   3,  -3,  -3,   3,   7,  -4,   4,  -3,   2,  -7,   2,
  1097      2,  -2,  -4,   2,   8,  -2,  -2,  -2,   4,   2,  -2,   2,   3,   2,  -2,  -2,
  1098      2,   2,  -2,  -8,  -2,   9,  -2,   2,  -3,  -2,   2,  -2,   2,   2,   2,   4,
  1099     -2,  -4,  10,   2,   2,  -2,  -9,  -2,   2,  -2,   5,   4,  -4,   4,  -2,   2,
  1100     -5,  -4,  -3,   4,   2,  -3,   3,  -2,  -5,   5,   3,   3,  -2,  -3, -10,  -4}
  1106     {1,  1,  0,  2,  2,  1,  1,  3,  3,  4,  4,  0,  1,  1,  5,  5,
  1107      2,  2,  6,  6,  7,  7,  1,  8,  1,  8,  3,  3,  9,  9,  1,  2,
  1108      2,  1,  4, 10,  4, 10, 11, 11,  1,  5, 12, 12,  1,  5, 13, 13,
  1109      3,  3,  6,  6,  2,  2, 14, 14, 16, 16, 15,  7, 15,  8,  8,  7,
  1110      1,  1, 17, 17,  4,  4,  1,  1, 18, 18,  2,  2,  5,  5, 25,  3,
  1111      9,  3, 25,  9, 19, 24, 19, 24,  1, 21, 20,  1, 21, 22, 20, 22,
  1112     23, 23,  8,  6, 33,  6,  8, 33,  7,  7, 26, 26,  1, 32,  1, 32,
  1113     28,  4, 28, 10, 29, 27, 27, 10, 41,  4, 29,  2,  2, 41, 36, 31,
  1114     49, 31, 34, 30, 34, 36, 30, 35,  1, 49, 11,  5, 35, 11,  1,  3,
  1115      3,  5, 37, 37,  8, 40,  8, 40, 12, 12, 42, 42,  1, 38, 16, 57,
  1116      1,  6, 16, 39, 38,  6,  7,  7, 13, 13, 39, 43,  2, 43, 57,  2,
  1117     50,  9, 44,  9, 50,  4, 15, 48, 44,  4,  1, 15, 48, 14, 14,  1,
  1118     45, 45,  8,  3,  5,  8, 51, 47,  3, 46, 46, 47,  5, 51,  1, 17,
  1119     17, 58,  1, 58,  2, 52, 52,  2, 53,  7, 59,  6,  6, 56, 53, 55,
  1120      7, 55,  1, 54, 59, 56, 54, 10,  1, 10,  4, 60,  1, 60,  8,  4,
  1121      8, 64, 64, 61,  1, 63,  3, 63, 62, 61,  5, 11,  5,  3, 11, 62},
  1124     { 1,  -1,   0,   1,  -1,   2,  -2,   1,  -1,   1,  -1,   0,   3,  -3,   1,  -1,
  1125       2,  -2,   1,  -1,   1,  -1,   4,   1,  -4,  -1,   2,  -2,   1,  -1,   5,   3,
  1126      -3,  -5,   2,   1,  -2,  -1,   1,  -1,   6,   2,   1,  -1,  -6,  -2,   1,  -1,
  1127       3,  -3,   2,  -2,   4,  -4,   1,  -1,   1,  -1,   1,   2,  -1,   2,  -2,  -2,
  1128       7,  -7,   1,  -1,   3,  -3,   8,  -8,   1,  -1,   5,  -5,   3,  -3,   1,   4,
  1129       2,  -4,  -1,  -2,   1,   1,  -1,  -1,   9,   1,   1,  -9,  -1,   1,  -1,  -1,
  1130       1,  -1,   3,  -3,   1,   3,  -3,  -1,   3,  -3,   1,  -1,  10,   1, -10,  -1,
  1131       1,   4,  -1,   2,   1,  -1,   1,  -2,   1,  -4,  -1,   6,  -6,  -1,   1,   1,
  1132       1,  -1,   1,   1,  -1,  -1,  -1,   1,  11,  -1,  -2,   4,  -1,   2, -11,   5,
  1133      -5,  -4,  -1,   1,   4,   1,  -4,  -1,  -2,   2,   1,  -1,  12,   1,  -2,   1,
  1134     -12,   4,   2,   1,  -1,  -4,   4,  -4,   2,  -2,  -1,   1,   7,  -1,  -1,  -7,
  1135      -1,  -3,   1,   3,   1,   5,   2,   1,  -1,  -5,  13,  -2,  -1,   2,  -2, -13,
  1136       1,  -1,   5,   6,   5,  -5,   1,   1,  -6,   1,  -1,  -1,  -5,  -1,  14,   2,
  1137      -2,   1, -14,  -1,   8,   1,  -1,  -8,   1,   5,   1,   5,  -5,   1,  -1,   1,
  1138      -5,  -1,  15,   1,  -1,  -1,  -1,   3, -15,  -3,   6,   1,  16,  -1,   6,  -6,
  1139      -6,   1,  -1,   1, -16,   1,   7,  -1,   1,  -1,  -6,  -3,   6,  -7,   3,  -1}
  1145     {0,  1,  1,  2,  2,  3,  3,  4,  4,  1,  1,  5,  5,  6,  6,  7,
  1146      7,  8,  8,  9,  9,  2,  2, 10, 10,  1,  1, 11, 11, 12, 12,  3,
  1147      3, 13, 13,  0, 14, 14, 16, 15, 16, 15,  4,  4, 17,  1, 17,  1,
  1148      5,  5, 18, 18,  2,  2,  6,  6,  8, 19,  7,  8,  7, 19, 20, 20,
  1149     21, 21, 22, 24, 22, 24, 23, 23,  1,  1, 25, 25,  3,  3, 26, 26,
  1150      9,  9, 27, 27, 28, 28, 33, 29,  4, 33, 29,  1,  4,  1, 32, 32,
  1151      2,  2, 31, 10, 30, 10, 30, 31, 34, 34,  5,  5, 36, 36, 35, 41,
  1152     35, 11, 41, 11, 37,  1,  8,  8, 37,  6,  1,  6, 40,  7,  7, 40,
  1153     12, 38, 12, 39, 39, 38, 49, 13, 49, 13,  3, 42,  3, 42, 16, 16,
  1154     43, 43, 14, 14,  1,  1, 44, 15, 44, 15,  2,  2, 57, 48, 50, 48,
  1155     57, 50,  4, 45, 45,  4, 46, 47, 47, 46,  1, 51,  1, 17, 17, 51,
  1156      8,  9,  9,  5, 58,  8, 58,  5, 52, 52, 55, 56, 53, 56, 55, 59,
  1157     59, 53, 54,  1,  6, 54,  7,  7,  6,  1,  2,  3,  2,  3, 64, 60,
  1158     60, 10, 10, 64, 61, 62, 61, 63,  1, 63, 62,  1, 18, 24, 18,  4,
  1159     25,  4,  8, 21, 21,  1, 24, 22, 25, 22,  8, 11, 19, 11, 23,  1,
  1160     20, 23, 19, 20,  5, 12,  5,  1, 16,  2, 12, 13,  2, 13,  1, 16},
  1163     { 0,   1,  -1,   1,  -1,   1,  -1,   1,  -1,   2,  -2,   1,  -1,   1,  -1,   1,
  1164      -1,   1,  -1,   1,  -1,   2,  -2,   1,  -1,   3,  -3,   1,  -1,   1,  -1,   2,
  1165      -2,   1,  -1,   0,   1,  -1,   1,   1,  -1,  -1,   2,  -2,   1,   4,  -1,  -4,
  1166       2,  -2,   1,  -1,  -3,   3,   2,  -2,   2,   1,   2,  -2,  -2,  -1,   1,  -1,
  1167       1,  -1,   1,   1,  -1,  -1,   1,  -1,   5,  -5,   1,  -1,   3,  -3,   1,  -1,
  1168       2,  -2,   1,  -1,   1,  -1,   1,   1,   3,  -1,  -1,   6,  -3,  -6,  -1,   1,
  1169       4,  -4,   1,   2,   1,  -2,  -1,  -1,   1,  -1,   3,  -3,   1,  -1,   1,   1,
  1170      -1,   2,  -1,  -2,   1,   7,  -3,   3,  -1,   3,  -7,  -3,   1,  -3,   3,  -1,
  1171       2,   1,  -2,   1,  -1,  -1,   1,   2,  -1,  -2,  -4,  -1,   4,   1,   2,  -2,
  1172       1,  -1,  -2,   2,   8,  -8,  -1,   2,   1,  -2,  -5,   5,   1,  -1,  -1,   1,
  1173      -1,   1,   4,  -1,   1,  -4,  -1,  -1,   1,   1,   9,   1,  -9,   2,  -2,  -1,
  1174      -4,   3,  -3,  -4,  -1,   4,   1,   4,   1,  -1,   1,  -1,   1,   1,  -1,   1,
  1175      -1,  -1,  -1,  10,   4,   1,   4,  -4,  -4, -10,   6,   5,  -6,  -5,   1,  -1,
  1176       1,   3,  -3,  -1,   1,  -1,  -1,  -1,  11,   1,   1, -11,  -2,  -2,   2,   5,
  1177      -2,  -5,  -5,   2,  -2,  12,   2,  -2,   2,   2,   5,  -3,  -2,   3,  -2, -12,
  1178      -2,   2,   2,   2,  -5,   3,   5,  13,  -3,   7,  -3,  -3,  -7,   3, -13,   3}
  1184     {0,  1,  1,  1,  2,  2,  1,  3,  3,  1,  1,  1,  4,  4,  1,  5,
  1185      2,  1,  5,  2,  1,  1,  6,  6,  1,  1,  1,  1,  1,  7,  3,  1,
  1186      2,  3,  0,  1,  2,  7,  1,  1,  1,  8,  1,  1,  8,  1,  1,  1,
  1187      9,  1,  9,  1,  2,  1,  1,  2,  1,  1, 10,  4,  1, 10,  1,  4,
  1188      1,  1,  1,  1,  1,  3,  1,  1,  1,  3,  2,  1,  5,  1,  1,  1,
  1189      2,  5,  1, 11,  1, 11,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
  1190      2,  1,  6,  1,  6,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1, 12,
  1191      3,  1, 12,  1,  1,  1,  2,  1,  1,  3,  1,  1,  1,  1,  1,  1,
  1192      4,  1,  1,  1,  2,  1,  1,  4,  1,  1,  1,  1,  1,  1,  2,  1,
  1193      1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  3,  1,  2,  1,  1,  5,
  1194      1,  1,  1,  1,  1,  7,  1,  7,  1,  1,  2,  3,  1,  1,  1,  1,
  1195      5,  1,  1,  1,  1,  1,  1,  2, 13,  1,  1,  1,  1,  1,  1,  1,
  1196      1,  1,  1,  1,  1,  1,  1,  1, 13,  2,  1,  1,  4,  1,  1,  1,
  1197      3,  1,  6,  1,  1,  1, 14,  1,  1,  1,  1,  1, 14,  6,  1,  1,
  1198      1,  1, 15,  2,  4,  1,  2,  3, 15,  1,  1,  1,  8,  1,  1,  8,
  1199      1,  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  1,  1,  1,  1,  1},
  1202     { 0,   1,  -1,   2,   1,  -1,  -2,   1,  -1,   3,  -3,   4,   1,  -1,  -4,   1,
  1203       2,   5,  -1,  -2,  -5,   6,   1,  -1,  -6,   7,  -7,   8,  -8,   1,   2,   9,
  1204       3,  -2,   0,  -9,  -3,  -1,  10, -10,  11,   1, -11,  12,  -1, -12,  13, -13,
  1205       1,  14,  -1, -14,   4,  15, -15,  -4,  16, -16,   1,   2,  17,  -1, -17,  -2,
  1206      18, -18,  19, -19,  20,   3, -20,  21, -21,  -3,   5,  22,   2, -22, -23,  23,
  1207      -5,  -2,  24,   1, -24,  -1,  25, -25,  26, -26, -27,  27,  28,  29, -28, -29,
  1208       6,  30,   2, -31,  -2, -30,  31,  -6, -32,  32,  33, -33,  34, -35, -34,   1,
  1209       4, -36,  -1,  35,  37,  36,   7, -37,  38,  -4, -38,  39,  41,  40, -40, -39,
  1210       3,  42, -43, -41,  -7, -42,  43,  -3,  44, -44,  45, -45,  46,  47,   8, -47,
  1211     -48, -46,  50, -50,  48,  49,  51, -49,  52, -52,   5, -51,  -8, -53,  53,   3,
  1212     -56,  56,  55,  54, -54,   2,  60,  -2, -55,  58,   9,  -5,  59,  57, -57, -63,
  1213      -3, -58, -60, -61,  61, -59, -62,  -9,   1,  64,  62,  69, -64,  63,  65, -67,
  1214     -68,  66, -65,  68, -66, -69,  67, -70,  -1,  10,  71, -71,   4,  73,  72,  70,
  1215       6, -76,  -3,  74, -78, -74,   1,  78,  80, -72, -75,  76,  -1,   3, -73,  79,
  1216      75,  77,   1,  11,  -4, -79, -10,  -6,  -1, -77, -83, -80,   2,  81, -84,  -2,
  1217      83, -81,  82, -82,  84, -87, -86,  85, -11, -85,  86, -89,  87, -88,  88,  89}
  1223     {1,  1,  0,  2,  1,  2,  1,  3,  3,  1,  1,  4,  4,  2,  2,  1,
  1224      1,  5,  5,  6,  1,  6,  1,  7,  7,  3,  3,  2,  8,  2,  8,  1,
  1225      1,  0,  9,  9,  1,  1, 10,  4, 10,  4, 11, 11,  2,  1,  2,  1,
  1226     12, 12,  3,  3,  1,  1, 13,  5,  5, 13, 14,  1,  1, 14,  2,  2,
  1227      6,  6, 15,  1,  1, 15, 16,  4,  7, 16,  4,  7,  1,  1,  3,  3,
  1228      8,  8,  2,  2,  1,  1, 17, 17,  1,  1, 18, 18,  5,  5,  2,  2,
  1229      1,  1,  9, 19,  9, 19, 20,  3,  3, 20,  1, 10, 21,  1, 10,  4,
  1230      4, 21, 22,  6,  6, 22,  1,  1, 23, 24,  2,  2, 23, 24, 11,  1,
  1231      1, 11,  7, 25,  7,  1,  1, 25,  8,  8,  3, 26,  3,  1, 12,  2,
  1232      2, 26,  1, 12,  5,  5, 27,  4,  1,  4,  1, 27, 28,  1, 28, 13,
  1233      1, 13,  2, 29,  2,  1, 32,  6,  1, 30, 14, 29, 14,  6,  3, 31,
  1234      3,  1, 30,  1, 32, 31, 33,  9, 33,  1,  1,  7,  9,  7,  2,  2,
  1235      1,  1,  4, 36, 34,  4,  5, 10, 10,  5, 34,  1,  1, 35,  8,  8,
  1236     36,  3, 35,  1, 15,  3,  2,  1, 16, 15, 16,  2, 37,  1, 37,  1,
  1237      1,  1,  6,  6, 38,  1, 38, 11,  1, 39, 39, 40, 11,  2, 41,  4,
  1238     40,  1,  2,  4,  1,  1,  1, 41,  3,  1,  3,  1,  5,  7,  5,  7},
  1241     { 1,  -1,   0,   1,   2,  -1,  -2,   1,  -1,   3,  -3,   1,  -1,   2,  -2,   4,
  1242      -4,   1,  -1,   1,   5,  -1,  -5,   1,  -1,   2,  -2,   3,   1,  -3,  -1,   6,
  1243      -6,   0,   1,  -1,   7,  -7,   1,   2,  -1,  -2,   1,  -1,   4,   8,  -4,  -8,
  1244       1,  -1,   3,  -3,   9,  -9,   1,   2,  -2,  -1,   1,  10, -10,  -1,   5,  -5,
  1245       2,  -2,   1,  11, -11,  -1,   1,   3,   2,  -1,  -3,  -2,  12, -12,   4,  -4,
  1246       2,  -2,  -6,   6,  13, -13,   1,  -1,  14, -14,   1,  -1,   3,  -3,   7,  -7,
  1247      15, -15,   2,   1,  -2,  -1,   1,   5,  -5,  -1, -16,   2,   1,  16,  -2,   4,
  1248      -4,  -1,   1,   3,  -3,  -1,  17, -17,   1,   1,  -8,   8,  -1,  -1,   2,  18,
  1249     -18,  -2,   3,   1,  -3,  19, -19,  -1,   3,  -3,   6,   1,  -6,  20,   2,   9,
  1250      -9,  -1, -20,  -2,   4,  -4,   1,  -5,  21,   5, -21,  -1,   1, -22,  -1,   2,
  1251      22,  -2,  10,   1, -10,  23,   1,   4, -23,   1,   2,  -1,  -2,  -4,  -7,   1,
  1252       7, -24,  -1,  24,  -1,  -1,   1,   3,  -1, -25,  25,   4,  -3,  -4,  11, -11,
  1253      26, -26,   6,   1,   1,  -6,  -5,  -3,   3,   5,  -1, -27,  27,   1,   4,  -4,
  1254      -1,  -8,  -1,  28,   2,   8, -12, -28,  -2,  -2,   2,  12,  -1,  29,   1, -29,
  1255      30, -30,   5,  -5,   1, -31,  -1,   3,  31,  -1,   1,   1,  -3, -13,   1,  -7,
  1256      -1, -32,  13,   7,  32,  33, -33,  -1,  -9, -34,   9,  34,  -6,   5,   6,  -5}
  1262     {1,  1,  0,  1,  1,  2,  2,  1,  1,  3,  3,  1,  1,  0,  2,  2,
  1263      4,  1,  4,  1,  1,  1,  5,  5,  1,  1,  6,  6,  2,  2,  1,  1,
  1264      3,  3,  7,  7,  1,  1,  8,  8,  1,  1,  2,  2,  1,  9,  1,  9,
  1265      4,  4, 10,  1,  1, 10,  1,  1, 11, 11,  3,  3,  1,  2,  1,  2,
  1266      1,  1, 12, 12,  5,  5,  1,  1, 13,  1,  1, 13,  2,  2,  1,  1,
  1267      6,  6,  1,  1,  4, 14,  4, 14,  3,  1,  3,  1,  1,  1, 15,  7,
  1268     15,  2,  2,  7,  1,  1,  1,  8,  1,  8, 16, 16,  1,  1,  1,  1,
  1269      2,  1,  1,  2,  1,  1,  3,  5,  5,  3,  4,  1,  1,  4,  1,  1,
  1270     17, 17,  9,  1,  1,  9,  2,  2,  1,  1, 10, 10,  1,  6,  1,  1,
  1271      6, 18,  1,  1, 18,  1,  1,  1,  2,  2,  3,  1,  3,  1,  1,  1,
  1272      4,  1, 19,  1, 19,  7,  1,  1, 20,  1,  4, 20,  1,  7, 11,  2,
  1273      1, 11, 21,  2,  8,  5,  1,  8,  1,  5, 21,  1,  1,  1, 22,  1,
  1274      1, 22,  1,  1,  3,  3,  1, 23,  2, 12, 24,  1,  1,  2,  1,  1,
  1275     12, 23,  1,  1, 24,  1,  1,  1,  4,  1,  1,  1,  2,  1,  6,  6,
  1276      4,  2,  1,  1,  1,  1,  1,  1,  1, 14, 13,  3,  1, 25,  9, 25,
  1277     14,  1,  9,  3, 13,  1,  1,  1,  1,  1, 10,  1,  1,  2, 10,  2},
  1280     {-20,  -1,   0,   2,  -2,   1,  -1,   3,  -3,   1,  -1,   4,  -4,   0,   2,  -2,
  1281        1,   5,  -1,  -5,   6,  -6,   1,  -1,   7,  -7,   1,  -1,   3,  -3,   8,  -8,
  1282        2,  -2,   1,  -1,   9,  -9,   1,  -1,  10, -10,   4,  -4,  11,   1, -11,  -1,
  1283        2,  -2,   1,  12, -12,  -1,  13, -13,   1,  -1,   3,  -3,  14,   5, -14,  -5,
  1284      -15,  15,  -1,   1,   2,  -2,  16, -16,   1,  17, -17,  -1,   6,  -6,  18, -18,
  1285        2,  -2, -19,  19,  -3,   1,   3,  -1,   4,  20,  -4,   1, -21,  21,   1,   2,
  1286       -1,  -7,   7,  -2,  22, -22,  23,   2, -23,  -2,   1,  -1, -24,  24, -25,  25,
  1287       -8, -26,  26,   8, -27,  27,   5,   3,  -3,  -5,  -4,  28, -28,   4,  29, -29,
  1288        1,  -1,  -2, -30,  30,   2,   9,  -9, -31,  31,   2,  -2, -32,   3,  32, -33,
  1289       -3,   1,  33, -34,  -1,  34, -35,  35, -10,  10,  -6,  36,   6, -36,  37, -37,
  1290       -5,  38,   1, -38,  -1,   3,  39, -39,  -1,  40,   5,   1, -40,  -3,   2, -11,
  1291      -41,  -2,   1,  11,  -3,  -4,  41,   3,  42,   4,  -1, -43, -42,  43,   1, -44,
  1292       45,  -1,  44, -45,  -7,   7, -46,   1, -12,   2,   1, -47,  46,  12,  47,  48,
  1293       -2,  -1, -48,  49,  -1, -50, -49,  50,  -6, -51,  51,  52, -13,  53,  -4,   4,
  1294        6,  13, -53, -52, -54,  55,  54, -55, -56,  -2,   2,  -8,  56,   1,  -3,  -1,
  1295        2,  58,   3,   8,  -2,  57, -58, -60, -59, -57,  -3,  60,  59, -14,   3,  14}
  1301     {1,  1,  0,  2,  2,  1,  1,  3,  3,  4,  4,  5,  5,  1,  1,  6,
  1302      6,  2,  2,  7,  7,  8,  8,  1,  1,  3,  3,  9,  9, 10, 10,  1,
  1303      1,  2,  2,  4,  4, 11,  0, 11, 12, 12, 13, 13,  1,  1,  5,  5,
  1304     14, 14, 15, 16, 15, 16,  3,  3,  1,  6,  1,  6,  2,  2,  7,  7,
  1305      8,  8, 17, 17,  1,  1,  4,  4, 18, 18,  2,  2,  1, 19,  1, 20,
  1306     19, 20, 21, 21,  3,  3, 22, 22,  5,  5, 24,  1,  1, 23,  9, 23,
  1307     24,  9,  2,  2, 10,  1,  1, 10,  6,  6, 25,  4,  4, 25,  7,  7,
  1308     26,  8,  1,  8,  3,  1, 26,  3, 11, 11, 27, 27,  2, 28,  1,  2,
  1309     28,  1, 12, 12,  5,  5, 29, 13, 13, 29, 32,  1,  1, 33, 31, 30,
  1310     32,  4, 30, 33,  4, 31,  3, 14,  1,  1,  3, 34, 34,  2,  2, 14,
  1311      6,  6, 35, 36, 35, 36,  1, 15,  1, 16, 16, 15,  7,  9,  7,  9,
  1312     37,  8,  8, 37,  1,  1, 39,  2, 38, 39,  2, 40,  5, 38, 40,  5,
  1313      3,  3,  4,  4, 10, 10,  1,  1,  1,  1, 41,  2, 41,  2,  6,  6,
  1314      1,  1, 11, 42, 11, 43,  3, 42,  3, 17,  4, 43,  1, 17,  7,  1,
  1315      8, 44,  4,  7, 44,  5,  8,  2,  5,  1,  2, 48, 45,  1, 12, 45,
  1316     12, 48, 13, 13,  1,  9,  9, 46,  1, 46, 47, 47, 49, 18, 18, 49},
  1319     { 1,  -1,   0,   1,  -1,   2,  -2,   1,  -1,   1,  -1,   1,  -1,   3,  -3,   1,
  1320      -1,  -2,   2,   1,  -1,   1,  -1,   4,  -4,  -2,   2,   1,  -1,   1,  -1,   5,
  1321      -5,  -3,   3,   2,  -2,   1,   0,  -1,   1,  -1,   1,  -1,   6,  -6,   2,  -2,
  1322       1,  -1,   1,   1,  -1,  -1,  -3,   3,   7,   2,  -7,  -2,  -4,   4,   2,  -2,
  1323       2,  -2,   1,  -1,   8,  -8,   3,  -3,   1,  -1,  -5,   5,   9,   1,  -9,   1,
  1324      -1,  -1,   1,  -1,  -4,   4,   1,  -1,   3,  -3,   1, -10,  10,   1,   2,  -1,
  1325      -1,  -2,   6,  -6,   2,  11, -11,  -2,   3,  -3,   1,  -4,   4,  -1,   3,  -3,
  1326       1,   3,  12,  -3,  -5, -12,  -1,   5,   2,  -2,   1,  -1,  -7,   1,  13,   7,
  1327      -1, -13,   2,  -2,   4,  -4,   1,   2,  -2,  -1,   1,  14, -14,   1,   1,   1,
  1328      -1,  -5,  -1,  -1,   5,  -1,  -6,   2, -15,  15,   6,   1,  -1,  -8,   8,  -2,
  1329      -4,   4,   1,   1,  -1,  -1,  16,   2, -16,  -2,   2,  -2,   4,   3,  -4,  -3,
  1330      -1,  -4,   4,   1, -17,  17,  -1,  -9,   1,   1,   9,   1,  -5,  -1,  -1,   5,
  1331      -7,   7,   6,  -6,   3,  -3,  18, -18,  19, -19,   1, -10,  -1,  10,  -5,   5,
  1332      20, -20,  -3,   1,   3,   1,   8,  -1,  -8,   2,   7,  -1, -21,  -2,   5,  21,
  1333       5,  -1,  -7,  -5,   1,  -6,  -5, -11,   6,  22,  11,   1,   1, -22,  -3,  -1,
  1334       3,  -1,   3,  -3, -23,   4,  -4,   1,  23,  -1,   1,  -1,   1,  -2,   2,  -1}
  1340     {1,  1,  1,  1,  0,  2,  2,  1,  1,  3,  3,  0,  1,  1,  2,  2,
  1341      4,  4,  1,  1,  5,  5,  1,  1,  2,  2,  3,  3,  6,  6,  1,  1,
  1342      7,  7,  8,  1,  8,  2,  2,  1,  4,  4,  1,  3,  1,  3,  9,  9,
  1343      2,  2,  1,  5,  1,  5, 10, 10,  1,  1, 11, 11,  3,  6,  3,  4,
  1344      4,  6,  2,  2,  1, 12,  1, 12,  7, 13,  7, 13,  1,  1,  8,  8,
  1345      2,  2, 14, 14, 16, 15, 16,  5,  5,  1,  3, 15,  1,  3,  4,  4,
  1346      1,  1, 17, 17,  2,  2,  6,  6,  1, 18,  1, 18, 22, 21, 22, 21,
  1347     25, 24, 25, 19,  9, 20,  9, 23, 19, 24, 20,  3, 23,  7,  3,  1,
  1348      1,  7, 28, 26, 29,  5, 28, 26,  5,  8, 29,  4,  8, 27,  2,  2,
  1349      4, 27,  1,  1, 10, 36, 10, 33, 33, 36, 30,  1, 32, 32,  1, 30,
  1350      6, 31, 31, 35,  3,  6, 11, 11,  3,  2, 35,  2, 34,  1, 34,  1,
  1351     37, 37, 12,  7, 12,  5, 41,  5,  4,  7,  1,  8, 13,  4,  1, 41,
  1352     13, 38,  8, 38,  9,  1, 40, 40,  9,  1, 39,  2,  2, 49, 39, 42,
  1353      3,  3, 14, 16, 49, 14, 16, 42, 43, 43,  6,  6, 15,  1,  1, 15,
  1354     44, 44,  1,  1, 50, 48,  4,  5,  4,  7,  5,  2, 10, 10, 48,  7,
  1355     50, 45,  2,  1, 45,  8,  8,  1, 46, 46,  3, 47, 47,  3,  1,  1},
  1358     { 1,  -1,   2,  -2,   0,   1,  -1,   3,  -3,   1,  -1,   0,   4,  -4,   2,  -2,
  1359       1,  -1,   5,  -5,   1,  -1,   6,  -6,   3,  -3,   2,  -2,   1,  -1,   7,  -7,
  1360       1,  -1,   1,   8,  -1,   4,  -4,  -8,   2,  -2,   9,   3,  -9,  -3,   1,  -1,
  1361       5,  -5,  10,   2, -10,  -2,   1,  -1,  11, -11,   1,  -1,  -4,   2,   4,   3,
  1362      -3,  -2,   6,  -6,  12,   1, -12,  -1,   2,   1,  -2,  -1,  13, -13,   2,  -2,
  1363       7,  -7,   1,  -1,   1,   1,  -1,   3,  -3,  14,   5,  -1, -14,  -5,   4,  -4,
  1364      15, -15,   1,  -1,   8,  -8,  -3,   3,  16,   1, -16,  -1,   1,   1,  -1,  -1,
  1365       1,   1,  -1,   1,   2,   1,  -2,   1,  -1,  -1,  -1,   6,  -1,   3,  -6,  17,
  1366     -17,  -3,   1,   1,   1,   4,  -1,  -1,  -4,   3,  -1,   5,  -3,  -1,  -9,   9,
  1367      -5,   1,  18, -18,   2,   1,  -2,   1,  -1,  -1,   1,  19,  -1,   1, -19,  -1,
  1368       4,   1,  -1,   1,   7,  -4,  -2,   2,  -7,  10,  -1, -10,   1,  20,  -1, -20,
  1369       1,  -1,   2,   4,  -2,   5,   1,  -5,   6,  -4,  21,   4,   2,  -6, -21,  -1,
  1370      -2,   1,  -4,  -1,  -3,  22,  -1,   1,   3, -22,  -1,  11, -11,   1,   1,   1,
  1371       8,  -8,   2,   2,  -1,  -2,  -2,  -1,   1,  -1,  -5,   5,   2,  23, -23,  -2,
  1372       1,  -1,  24, -24,  -1,  -1,   7,   6,  -7,   5,  -6,  12,  -3,   3,   1,  -5,
  1373       1,   1, -12,  25,  -1,  -5,   5, -25,  -1,   1,   9,   1,  -1,  -9,  26, -26}
 int is_empty
= 1 if this band doesn't contain any data 
uint8_t type
macroblock type: 0 - INTRA, 1 - INTER 
int num_MBs
number of macroblocks in this tile 
void * av_mallocz(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
#define AVERROR_INVALIDDATA
Invalid data found when processing input. 
av_cold int ff_ivi_decode_close(AVCodecContext *avctx)
Close Indeo5 decoder and clean up its context. 
This structure describes decoded (raw) audio or video data. 
macroblock/block huffman table descriptor 
int(* is_nonnull_frame)(struct IVI45DecContext *ctx)
InvTransformPtr * inv_transform
int ff_ivi_dec_huff_desc(GetBitContext *gb, int desc_coded, int which_tab, IVIHuffTab *huff_tab, AVCodecContext *avctx)
Decode a huffman codebook descriptor from the bitstream and select specified huffman table...
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits. 
static void skip_bits_long(GetBitContext *s, int n)
const uint8_t ff_ivi_direct_scan_4x4[16]
int num_tiles
number of tiles in this band 
int dst_buf
buffer index for the currently decoded frame 
int16_t * ref_buf
pointer to the reference frame buffer (for motion compensation) 
void avcodec_set_dimensions(AVCodecContext *s, int width, int height)
uint8_t eob_sym
end of block symbol 
int16_t * buf
pointer to the output buffer for this band 
DSP functions (inverse transforms, motion compensations, wavelet recompostion) for Indeo Video Intera...
static void ivi_output_plane(IVIPlaneDesc *plane, uint8_t *dst, int dst_pitch)
IVITile * tiles
array of tile descriptors 
int is_halfpel
precision of the motion compensation: 0 - fullpel, 1 - halfpel 
void ff_ivi_mc_4x4_delta(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type)
4x4 block motion compensation with adding delta 
int(* decode_pic_hdr)(struct IVI45DecContext *ctx, AVCodecContext *avctx)
int plane
plane number this band belongs to 
av_dlog(ac->avr,"%d samples - audio_convert: %s to %s (%s)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt), use_generic?ac->func_descr_generic:ac->func_descr)
int bufsize
band buffer size in bytes 
static void ivi_huff_desc_copy(IVIHuffDesc *dst, const IVIHuffDesc *src)
static uint16_t inv_bits(uint16_t val, int nbits)
Reverse "nbits" bits of the value "val" and return the result in the least significant bits...
void(* switch_buffers)(struct IVI45DecContext *ctx)
Macro definitions for various function/variable attributes. 
void av_freep(void *arg)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc() and set the pointer ...
RVMapDesc * rv_map
ptr to the RLE table for this band 
av_cold int ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg)
Initialize planes (prepares descriptors, allocates buffers etc). 
static int ivi_decode_blocks(GetBitContext *gb, IVIBandDesc *band, IVITile *tile, AVCodecContext *avctx)
VLC * tab
index of one of the predefined tables or "7" for custom one 
const uint8_t * frame_data
input frame data pointer 
const uint16_t * inter_base
quantization matrix for inter blocks 
const uint8_t * data_ptr
ptr to the first byte of the band data 
int inherit_mv
tells if motion vector is inherited from reference macroblock 
void ff_ivi_mc_8x8_no_delta(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type)
motion compensation without adding delta 
static int decode_band(IVI45DecContext *ctx, IVIBandDesc *band, AVCodecContext *avctx)
Decode an Indeo 4 or 5 band. 
int16_t * bufs[3]
array of pointers to the band buffers 
int pitch
pitch associated with the buffers above 
static int get_bits_count(const GetBitContext *s)
uint8_t cbp
coded block pattern 
int qdelta_present
tells if Qdelta signal is present in the bitstream (Indeo5 only) 
bitstream reader API header. 
static VLC_TYPE table_data[117592][2]
int(* decode_band_hdr)(struct IVI45DecContext *ctx, IVIBandDesc *band, AVCodecContext *avctx)
IVIPlaneDesc planes[3]
color planes 
const uint16_t * intra_base
quantization matrix for intra blocks 
const IVIHuffDesc ff_ivi_mb_huff_desc[8]
static macroblock huffman tables 
IVIHuffDesc cust_desc
pointer to the table associated with tab_sel 
static int get_bits_left(GetBitContext *gb)
const RVMapDesc ff_ivi_rvmap_tabs[9]
Run-value (RLE) tables. 
uint8_t corr[61 *2]
rvmap correction pairs 
static int ivi_dec_tile_data_size(GetBitContext *gb)
RVMapDesc rvmap_tabs[9]
local corrected copy of the static rvmap tables 
#define IVI_VLC_BITS
max number of bits of the ivi's huffman codes 
This file contains structures and macros shared by both Indeo4 and Indeo5 decoders. 
int ref_buf
inter frame reference buffer index 
DCTransformPtr * dc_transform
void av_log(void *avcl, int level, const char *fmt,...)
#define IVI_NUM_TILES(stride, tile_size)
calculate number of tiles in a stride 
void ff_ivi_mc_8x8_delta(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type)
8x8 block motion compensation with adding delta 
uint8_t esc_sym
escape symbol 
#define IVI_MBs_PER_TILE(tile_width, tile_height, mb_size)
calculate number of macroblocks in a tile 
run-value (RLE) table descriptor 
int inherit_qdelta
tells if quantiser delta is inherited from reference macroblock 
static int ivi_create_huff_from_desc(const IVIHuffDesc *cb, VLC *vlc, int flag)
uint8_t num_bands
number of bands this plane subdivided into 
int ff_ivi_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
static int ivi_process_empty_tile(AVCodecContext *avctx, IVIBandDesc *band, IVITile *tile, int32_t mv_scale)
Handle empty tiles by performing data copying and motion compensation respectively. 
IVIMbInfo * mbs
array of macroblock descriptors 
static unsigned int show_bits(GetBitContext *s, int n)
Show 1-25 bits. 
const uint8_t * inter_scale
quantization coefficient for inter blocks 
static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE(*table)[2], int bits, int max_depth)
Parse a vlc code. 
static VLC ivi_mb_vlc_tabs[8]
static macroblock Huffman tables 
void ff_ivi_init_static_vlc(void)
Initialize static codes used for macroblock and block decoding. 
#define INIT_VLC_USE_NEW_STATIC
int8_t q_delta
quant delta 
uint32_t frame_size
frame size in bytes 
IVIHuffTab mb_vlc
current macroblock table descriptor 
int is_2d_trans
1 indicates that the two-dimensional inverse transform is used 
void ff_ivi_recompose_haar(const IVIPlaneDesc *plane, uint8_t *dst, const int dst_pitch)
Haar wavelet recomposition filter for Indeo 4. 
int glob_quant
quant base for this band 
typedef void(RENAME(mix_any_func_type))
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line. 
static av_cold void ivi_free_buffers(IVIPlaneDesc *planes)
main external API structure. 
int aheight
aligned band height 
int is_empty
= 1 if this tile doesn't contain any data 
int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
Get a buffer for a frame. 
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered. 
int num_corr
number of correction entries 
#define init_vlc(vlc, nb_bits, nb_codes,bits, bits_wrap, bits_size,codes, codes_wrap, codes_size,flags)
information for Indeo tile 
const uint8_t ff_ivi_vertical_scan_8x8[64]
Scan patterns shared between indeo4 and indeo5. 
av_cold int ff_ivi_init_tiles(IVIPlaneDesc *planes, int tile_width, int tile_height)
Initialize tile and macroblock descriptors. 
static unsigned int get_bits1(GetBitContext *s)
void * av_malloc(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
synthesis window for stochastic i
static int init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
Initialize GetBitContext. 
IVIBandDesc * bands
array of band descriptors 
int32_t checksum
for debug purposes 
int rvmap_sel
rvmap table selector 
static int ivi_huff_desc_cmp(const IVIHuffDesc *desc1, const IVIHuffDesc *desc2)
int8_t mv_x
motion vector (x component) 
int8_t mv_y
motion vector (y component) 
int mb_size
macroblock size 
huffman codebook descriptor 
static unsigned int get_bits_long(GetBitContext *s, int n)
Read 0-32 bits. 
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFilterBuffer structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later.That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another.Buffer references ownership and permissions
IVIMbInfo * ref_mbs
ptr to the macroblock descriptors of the reference tile 
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes. 
void ff_ivi_mc_4x4_no_delta(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type)
4x4 block motion compensation without adding delta 
common internal api header. 
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers. 
int transform_size
block size of the transform 
VLC cust_tab
custom Huffman codebook descriptor 
const uint8_t * scan
ptr to the scan pattern 
else dst[i][x+y *dst_stride[i]]
VLC_TYPE(* table)[2]
code, bits 
static int ivi_scale_mv(int mv, int mv_scale)
scale motion vector 
static const uint8_t * align_get_bits(GetBitContext *s)
const IVIHuffDesc ff_ivi_blk_huff_desc[8]
static block huffman tables 
int(* decode_mb_info)(struct IVI45DecContext *ctx, IVIBandDesc *band, IVITile *tile, AVCodecContext *avctx)
information for Indeo macroblock (16x16, 8x8 or 4x4) 
IVIHuffTab blk_vlc
vlc table for decoding block data 
const uint8_t ff_ivi_horizontal_scan_8x8[64]
const uint8_t * intra_scale
quantization coefficient for intra blocks 
const uint8_t ff_reverse[256]
color plane (luma or chroma) information 
#define FFSWAP(type, a, b)
static VLC ivi_blk_vlc_tabs[8]
static block Huffman tables 
uint32_t buf_offs
address in the output buffer for this mb 
#define IVI_TOSIGNED(val)
convert unsigned values into signed ones (the sign is in the LSB) 
void ff_ivi_recompose53(const IVIPlaneDesc *plane, uint8_t *dst, const int dst_pitch)
5/3 wavelet recomposition filter for Indeo5 
information for Indeo wavelet band 
This structure stores compressed data. 
void ff_free_vlc(VLC *vlc)
#define IVI5_IS_PROTECTED
int data_size
size of the data in bytes