39 #define MIMIC_HEADER_SIZE   20 
   40 #define MIMIC_VLC_BITS      11 
   73     0x10, 0x20, 0x30, 0x00, 0x11, 0x40, 0x50, 0x12, 0x13, 0x21, 0x31, 0x60,
 
   74     0x14, 0x15, 0x16, 0x22, 0x41, 0x17, 0x18, 0x23, 0x24, 0x25, 0x32, 0x42,
 
   75     0x51, 0x61, 0x70, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x26, 0x27,
 
   76     0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x33, 0x34, 0x35, 0x36, 0x37,
 
   77     0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x43, 0x44, 0x45, 0x46, 0x47,
 
   78     0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x52, 0x53, 0x54, 0x55, 0x56,
 
   79     0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x62, 0x63, 0x64, 0x65,
 
   80     0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x71, 0x72, 0x73,
 
   81     0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E,
 
   85      2,  2,  3,  4,  4,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  8,  8,
 
   86      8,  8,  9,  9,  9,  9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12,
 
   87     13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17,
 
   88     17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21,
 
   89     22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26,
 
   90     26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30,
 
   94      0,  8,  1,  2,  9, 16, 24, 17,
 
   95     10,  3,  4, 11, 18, 25, 32, 40,
 
   96     33, 26, 19, 12,  5,  6, 13, 20,
 
   97     27, 34, 41, 48, 56, 49, 42, 35,
 
   98     28, 21, 14,  7, 15, 22, 29, 36,
 
   99     43, 50, 57, 58, 51, 44, 37, 30,
 
  100     23, 31, 38, 45, 52, 59, 39, 46,
 
  101     53, 60, 61, 54, 47, 55, 62, 63,
 
  110     ctx->swap_buf_size = 0;
 
  113         if (
ctx->frames[
i].f)
 
  144         if (!
ctx->frames[
i].f)
 
  159     if (avctx == avctx_from)
 
  167         if (
i != 
src->next_cur_index && 
src->frames[
i].f->data[0]) {
 
  182     {   -7,   7,   -6,   6,   -5,   5,   -4,   4, },
 
  183     {  -15,  15,  -14,  14,  -13,  13,  -12,  12,
 
  184        -11,  11,  -10,  10,   -9,   9,   -8,   8, },
 
  185     {  -31,  31,  -30,  30,  -29,  29,  -28,  28,
 
  186        -27,  27,  -26,  26,  -25,  25,  -24,  24,
 
  187        -23,  23,  -22,  22,  -21,  21,  -20,  20,
 
  188        -19,  19,  -18,  18,  -17,  17,  -16,  16, },
 
  189     {  -63,  63,  -62,  62,  -61,  61,  -60,  60,
 
  190        -59,  59,  -58,  58,  -57,  57,  -56,  56,
 
  191        -55,  55,  -54,  54,  -53,  53,  -52,  52,
 
  192        -51,  51,  -50,  50,  -49,  49,  -48,  48,
 
  193        -47,  47,  -46,  46,  -45,  45,  -44,  44,
 
  194        -43,  43,  -42,  42,  -41,  41,  -40,  40,
 
  195        -39,  39,  -38,  38,  -37,  37,  -36,  36,
 
  196        -35,  35,  -34,  34,  -33,  33,  -32,  32, },
 
  197     { -127, 127, -126, 126, -125, 125, -124, 124,
 
  198       -123, 123, -122, 122, -121, 121, -120, 120,
 
  199       -119, 119, -118, 118, -117, 117, -116, 116,
 
  200       -115, 115, -114, 114, -113, 113, -112, 112,
 
  201       -111, 111, -110, 110, -109, 109, -108, 108,
 
  202       -107, 107, -106, 106, -105, 105, -104, 104,
 
  203       -103, 103, -102, 102, -101, 101, -100, 100,
 
  204        -99,  99,  -98,  98,  -97,  97,  -96,  96, },
 
  205     {  -95,  95,  -94,  94,  -93,  93,  -92,  92,
 
  206        -91,  91,  -90,  90,  -89,  89,  -88,  88,
 
  207        -87,  87,  -86,  86,  -85,  85,  -84,  84,
 
  208        -83,  83,  -82,  82,  -81,  81,  -80,  80,
 
  209        -79,  79,  -78,  78,  -77,  77,  -76,  76,
 
  210        -75,  75,  -74,  74,  -73,  73,  -72,  72,
 
  211        -71,  71,  -70,  70,  -69,  69,  -68,  68,
 
  212        -67,  67,  -66,  66,  -65,  65,  -64,  64, },
 
  225         uint32_t vlc, num_bits;
 
  262     int ret, y, x, plane, cur_row = 0;
 
  264     for (plane = 0; plane < 3; plane++) {
 
  265         const int is_chroma = !!plane;
 
  266         const int qscale    = 
av_clip(10000 - 
quality, is_chroma ? 1000 : 2000,
 
  268         const int stride    = 
ctx->frames[
ctx->cur_index ].f->linesize[plane];
 
  269         const uint8_t *
src  = 
ctx->frames[
ctx->prev_index].f->data[plane];
 
  270         uint8_t       *dst  = 
ctx->frames[
ctx->cur_index ].f->data[plane];
 
  272         for (y = 0; y < 
ctx->num_vblocks[plane]; y++) {
 
  273             for (x = 0; x < 
ctx->num_hblocks[plane]; x++) {
 
  292                         int index            = (
ctx->cur_index + backref) & 15;
 
  293                         uint8_t *p           = 
ctx->frames[
index].f->data[0];
 
  299                                  ctx->frames[
ctx->prev_index].f->data[plane];
 
  300                             ctx->hdsp.put_pixels_tab[1][0](dst, p, 
stride, 8);
 
  303                                      "No such backreference! Buggy sample.\n");
 
  315             dst += (
stride - 
ctx->num_hblocks[plane]) << 3;
 
  332     uint8_t *data_1 = 
f->data[1];
 
  333     f->data[0] = 
f->data[0] + ( 
f->height       - 1) * 
f->linesize[0];
 
  334     f->data[1] = 
f->data[2] + ((
f->height >> 1) - 1) * 
f->linesize[2];
 
  335     f->data[2] = data_1     + ((
f->height >> 1) - 1) * 
f->linesize[1];
 
  337         f->linesize[
i] *= -1;
 
  343     const uint8_t *buf = avpkt->
data;
 
  344     int buf_size       = avpkt->
size;
 
  360     quality    = bytestream2_get_le16u(&gb);
 
  361     width      = bytestream2_get_le16u(&gb);
 
  362     height     = bytestream2_get_le16u(&gb);
 
  364     is_pframe  = bytestream2_get_le32u(&gb);
 
  365     num_coeffs = bytestream2_get_byteu(&gb);
 
  383         for (
i = 0; 
i < 3; 
i++) {
 
  392     if (is_pframe && !
ctx->frames[
ctx->prev_index].f->data[0]) {
 
  404     ctx->next_prev_index = 
ctx->cur_index;
 
  405     ctx->next_cur_index  = (
ctx->cur_index - 1) & 15;
 
  413     ctx->bbdsp.bswap_buf(
ctx->swap_buf,
 
  432     ctx->prev_index = 
ctx->next_prev_index;
 
  433     ctx->cur_index  = 
ctx->next_cur_index;