56     { 0, 1, 5, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0 },
 
   57     { 0, 3, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0 }
 
   61     { 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125 },
 
   62     { 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119 }
 
   66   { 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,
 
   67     0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,
 
   68     0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xA1, 0x08,
 
   69     0x23, 0x42, 0xB1, 0xC1, 0x15, 0x52, 0xD1, 0xF0,
 
   70     0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0A, 0x16,
 
   71     0x17, 0x18, 0x19, 0x1A, 0x25, 0x26, 0x27, 0x28,
 
   72     0x29, 0x2A, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
 
   73     0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
 
   74     0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,
 
   75     0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
 
   76     0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,
 
   77     0x7A, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
 
   78     0x8A, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
 
   79     0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
 
   80     0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6,
 
   81     0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3, 0xC4, 0xC5,
 
   82     0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2, 0xD3, 0xD4,
 
   83     0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xE1, 0xE2,
 
   84     0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA,
 
   85     0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
 
   87   { 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21,
 
   88     0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71,
 
   89     0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91,
 
   90     0xA1, 0xB1, 0xC1, 0x09, 0x23, 0x33, 0x52, 0xF0,
 
   91     0x15, 0x62, 0x72, 0xD1, 0x0A, 0x16, 0x24, 0x34,
 
   92     0xE1, 0x25, 0xF1, 0x17, 0x18, 0x19, 0x1A, 0x26,
 
   93     0x27, 0x28, 0x29, 0x2A, 0x35, 0x36, 0x37, 0x38,
 
   94     0x39, 0x3A, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
 
   95     0x49, 0x4A, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
 
   96     0x59, 0x5A, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
 
   97     0x69, 0x6A, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
 
   98     0x79, 0x7A, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
 
   99     0x88, 0x89, 0x8A, 0x92, 0x93, 0x94, 0x95, 0x96,
 
  100     0x97, 0x98, 0x99, 0x9A, 0xA2, 0xA3, 0xA4, 0xA5,
 
  101     0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xB2, 0xB3, 0xB4,
 
  102     0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xC2, 0xC3,
 
  103     0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xD2,
 
  104     0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA,
 
  105     0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
 
  106     0xEA, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8,
 
  116     { 0, 2, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 
  117     { 0, 1, 5, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
 
  121     { 0, 7, 6, 5, 8, 4, 3, 1, 2 },
 
  122     { 0, 2, 3, 4, 5, 6, 7, 1, 8 }
 
  125 #define MAX_ENTRIES  162 
  146                                  const uint8_t *syms, 
int num_syms)
 
  151     int prefix = 0, max_bits = 0, idx = 0;
 
  153     for (i = 0; i < 16; i++) {
 
  154         for (j = 0; j < lens[i]; j++) {
 
  156             codes[idx] = prefix++;
 
  164                               codes, 2, 2, syms, 1, 1, 0);
 
  171     for (i = 0; i < 2; i++) {
 
  191     for (i = 0; i < 2; i++) {
 
  213     if (val < (1 << (nbits - 1)))
 
  214         val -= (1 << nbits) - 1;
 
  227                            int *
block, 
int *dc_cache,
 
  228                            int bx, 
int by, uint16_t *quant_mat)
 
  230     int skip, 
val, pos = 1, zz_pos, 
dc;
 
  232     memset(block, 0, 
sizeof(*block) * 64);
 
  252         dc += dc_cache[
LEFT];
 
  255     block[0]       = dc * quant_mat[0];
 
  274         block[zz_pos] = val * quant_mat[zz_pos];
 
  278     return pos == 64 ? 0 : -1;
 
  282                                  uint8_t *dst[3], 
int mb_x, 
int mb_y)
 
  287     for (j = 0; j < 2; j++) {
 
  288         for (i = 0; i < 2; i++) {
 
  289             int xpos = mb_x * 2 + i;
 
  305     for (i = 1; i < 3; i++) {
 
  316         out = dst[i] + mb_x * 16;
 
  319         for (j = 0; j < 16; j++) {
 
  320             for (k = 0; k < 8; k++)
 
  330                          int *sel_len, 
int *prev)
 
  334     for (i = 2; i >= 0; i--) {
 
  340             if (sel_len[i] > 0) {
 
  342                 vec_pos[i] = 
get_bits(gb, sel_len[i]);
 
  343                 if (vec_pos[i] >= pval)
 
  346                 vec_pos[i] = !prev[i];
 
  350             vec_pos[i] = prev[i];
 
  356                             int vec_size, 
int component, 
int shift, 
int *prev)
 
  358     if (vec_pos < vec_size)
 
  361         return prev[component];
 
  363     return prev[component];
 
  366 #define MKVAL(vals)  ((vals)[0] | ((vals)[1] << 3) | ((vals)[2] << 6)) 
  380                                    uint8_t *picdst[3], 
int mb_x, 
int mb_y)
 
  384     int     sel_len[3], sel_flag[3];
 
  386     int     prev_vec1 = 0, prev_split = 0;
 
  388     int     prev_pix[3] = { 0 };
 
  389     int     prev_mode[16] = { 0 };
 
  392     const int val_shift = ctx->
quality == 100 ? 0 : 2;
 
  394     for (i = 0; i < 3; i++)
 
  397     for (i = 0; i < 3; i++) {
 
  399         for (j = 0; j < vec_len[i]; j++) {
 
  404         sel_flag[i] = vec_len[i] > 1;
 
  405         sel_len[i]  = vec_len[i] > 2 ? vec_len[i] - 2 : 0;
 
  408     for (j = 0; j < 16; j++) {
 
  413                 vals[0] = vals[1] = vals[2] = 0;
 
  420             for (i = 0; i < 16; i++) {
 
  422                     vals[0] =  prev_mode[i]       & 7;
 
  423                     vals[1] = (prev_mode[i] >> 3) & 7;
 
  424                     vals[2] =  prev_mode[i] >> 6;
 
  425                     if (mode == 1 && i == split) {
 
  428                 } 
else if (mode == 2) {
 
  432                 for (k = 0; k < 3; k++)
 
  435                                                  val_shift, prev_pix);
 
  436                 prev_mode[i] = 
MKVAL(vals);
 
  441                 if (split >= prev_split)
 
  448                 vals[0] =  prev_mode[0]       & 7;
 
  449                 vals[1] = (prev_mode[0] >> 3) & 7;
 
  450                 vals[2] =  prev_mode[0] >> 6;
 
  451                 for (i = 0; i < 3; i++) {
 
  452                     for (k = 0; k < 
split; k++) {
 
  454                                                      vec_len[i], i, val_shift,
 
  456                         prev_mode[k] = 
MKVAL(vals);
 
  462                 vals[0] =  prev_vec1       & 7;
 
  463                 vals[1] = (prev_vec1 >> 3) & 7;
 
  464                 vals[2] =  prev_vec1 >> 6;
 
  467                     prev_vec1 = 
MKVAL(vals);
 
  469                 for (i = 0; i < 3; i++) {
 
  470                     for (k = 0; k < 16 - 
split; k++) {
 
  472                                                      vec_len[i], i, val_shift,
 
  474                         prev_mode[split + k] = 
MKVAL(vals);
 
  481     for (i = 0; i < 3; i++)
 
  482         for (j = 0; j < 16; j++)
 
  483             memcpy(picdst[i] + mb_x * 16 + j * ctx->
pic->
linesize[i],
 
  484                    ctx->
imgbuf[i] + j * 16, 16);
 
  498     for (i = 0; i < 2; i++)
 
  499         c->
prev_dc[0][mb_x * 2 + i] = 0;
 
  501     for (i = 1; i < 3; i++) {
 
  512     int buf_size = avpkt->
size;
 
  518     int x, 
y, i, mb_width, mb_height, blk_type;
 
  523                "Frame should have at least %d bytes, got %d instead\n",
 
  529     width      = bytestream2_get_be16(&bc);
 
  530     height     = bytestream2_get_be16(&bc);
 
  532     quality    = bytestream2_get_byte(&bc);
 
  533     frame_type = bytestream2_get_byte(&bc);
 
  535     if (width > avctx->
width ||
 
  536         height != avctx->
height) {
 
  541     if (quality < 1 || quality > 100) {
 
  545     if ((frame_type & ~3) || frame_type == 3) {
 
  552                "Empty frame found but it is not a skip frame.\n");
 
  571         for (i = 0; i < 2; i++)
 
  578     mb_width  = 
FFALIGN(width,  16) >> 4;
 
  579     mb_height = 
FFALIGN(height, 16) >> 4;
 
  585     for (y = 0; y < mb_height; y++) {
 
  587         for (x = 0; x < mb_width; x++) {
 
  593                            "Error decoding DCT block %d,%d\n",
 
  601                            "Error decoding VQ block %d,%d\n",
 
  635     for (i = 0; i < 3; i++)
 
  652     for (i = 0; i < 3; i++) {