65                            Node *nodes, 
int node,
 
   66                            uint32_t pfx, 
int pl, 
int *
pos)
 
   74         xlat[*
pos] = 
s + (pl == 0);
 
   93     int cur_node, 
i, j, 
pos = 0;
 
   97     for (
i = 0; 
i < 256; 
i++) {
 
  110             int first_node = cur_node;
 
  111             int second_node = cur_node;
 
  114             nodes[cur_node].
count = -1;
 
  118                 if (
val && (
val < nodes[first_node].count)) {
 
  119                     if (
val >= nodes[second_node].count) {
 
  120                         first_node = new_node;
 
  122                         first_node = second_node;
 
  123                         second_node = new_node;
 
  127             } 
while (new_node != cur_node);
 
  129             if (first_node == cur_node)
 
  132             nd = nodes[second_node].
count;
 
  133             st = nodes[first_node].
count;
 
  134             nodes[second_node].
count = 0;
 
  135             nodes[first_node].
count  = 0;
 
  136             if (nd >= UINT32_MAX - st) {
 
  140             nodes[cur_node].
count = nd + st;
 
  141             nodes[cur_node].
sym = -1;
 
  142             nodes[cur_node].
n0 = cur_node;
 
  143             nodes[cur_node].
l = first_node;
 
  144             nodes[cur_node].
r = second_node;
 
  148     } 
while (cur_node - 256 == j);
 
  152     return ff_init_vlc_sparse(vlc, 10, 
pos, lens, 2, 2, 
bits, 4, 4, xlat, 1, 1, 0);
 
  156     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
 
  157     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
 
  158     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
 
  159     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
 
  160     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
 
  161     0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
 
  162     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  163     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  164     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  165     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  166     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  167     0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  168     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  169     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  170     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  171     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  172     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
 
  173     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  174     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  175     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  176     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  177     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  178     0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02,
 
  179     0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
 
  180     0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
 
  181     0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
 
  182     0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
 
  183     0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
 
  188     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  189     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
 
  190     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  191     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
 
  192     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  193     0x01, 0x01, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF,
 
  194     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  195     0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
 
  196     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  197     0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  198     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  199     0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  200     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  201     0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  202     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  203     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  204     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF,
 
  205     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  206     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
 
  207     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  208     0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
 
  209     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  210     0x01, 0x01, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF,
 
  211     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
 
  212     0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  213     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
  214     0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  215     0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
 
  220     0xFC, 0xFC, 0xFC, 0xFD, 0xFD, 0xFD, 0xFE, 0xFE,
 
  221     0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFC,
 
  222     0xFC, 0xFC, 0xFD, 0xFD, 0xFD, 0xFE, 0xFE, 0xFE,
 
  223     0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFC,
 
  224     0xFC, 0xFD, 0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFF,
 
  225     0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD,
 
  226     0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
 
  227     0x00, 0x01, 0x01, 0x01, 0xFD, 0xFD, 0xFD, 0xFE,
 
  228     0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
 
  229     0x01, 0x01, 0x01, 0xFD, 0xFD, 0xFD, 0xFE, 0xFE,
 
  230     0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01,
 
  231     0x01, 0x01, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
 
  232     0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02,
 
  233     0x02, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0x00,
 
  234     0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02,
 
  235     0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
 
  236     0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0xFF,
 
  237     0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
 
  238     0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0xFF, 0xFF,
 
  239     0xFF, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02,
 
  240     0x02, 0x02, 0x03, 0x03, 0x03, 0xFF, 0xFF, 0xFF,
 
  241     0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02,
 
  242     0x02, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x01,
 
  243     0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03,
 
  244     0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01,
 
  245     0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x04,
 
  246     0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
 
  247     0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x04, 0x04,
 
  252     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  253     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  254     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  255     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  256     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  257     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  258     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  259     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  260     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  261     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  262     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  263     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  264     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  265     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  266     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  267     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  268     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  269     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  270     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  271     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  272     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  273     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  274     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  275     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  276     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  277     0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF,
 
  278     0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01,
 
  279     0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00,
 
  284                         void *
data, 
int *got_frame,
 
  287     int TL[4] = { 128, 128, 128, 128 };
 
  288     int L[4]  = { 128, 128, 128, 128 };
 
  292     int ret, x, y, toffset, boffset;
 
  297     if (avpkt->
size <= 16)
 
  305     if (toffset < 16 || toffset >= avpkt->
size)
 
  309     if (toffset >= boffset || boffset >= avpkt->
size)
 
  320     memcpy(
s->table_bits, avpkt->
data + toffset, boffset - toffset);
 
  322     s->bdsp.bswap_buf((uint32_t *) 
s->table_bits,
 
  323                       (uint32_t *) 
s->table_bits,
 
  324                       (boffset - toffset + 3) >> 2);
 
  328     for (x = 0; x < 1024; x++) {
 
  350     if (!
s->bitstream_bits)
 
  353     memcpy(
s->bitstream_bits, avpkt->
data + boffset, avpkt->
size - boffset);
 
  355     s->bdsp.bswap_buf((uint32_t *) 
s->bitstream_bits,
 
  356                       (uint32_t *) 
s->bitstream_bits,
 
  357                       (avpkt->
size - boffset) >> 2);
 
  362     for (y = 0; y < avctx->
height; y++) {
 
  363         memset(dst, 0, avctx->
width * 2);
 
  368     for (y = 0; y < avctx->
height; y++) {
 
  369         for (x = 0; x < avctx->
width * 2 && y < avctx->
height;) {
 
  377                 } 
else if (
val < 0xE1) {
 
  384                     int incr = (
val - 0xDF) * 4;
 
  385                     if (x + incr >= avctx->
width * 2) {
 
  386                         int iy = ((x + incr) / (avctx->
width * 2));
 
  387                         x  = (x + incr) % (avctx->
width * 2);
 
  397                 y1 = 
get_vlc2(&gb, 
s->vlc[1].table, 
s->vlc[1].bits, 3);
 
  398                 u  = 
get_vlc2(&gb, 
s->vlc[2].table, 
s->vlc[2].bits, 3);
 
  399                 y2 = 
get_vlc2(&gb, 
s->vlc[1].table, 
s->vlc[1].bits, 3);
 
  400                 v  = 
get_vlc2(&gb, 
s->vlc[3].table, 
s->vlc[3].bits, 3);
 
  401                 if (y1 < 0 || y2 < 0 || 
u < 0 || v < 0)
 
  405                 dst[x + 2] = y1 + y2;
 
  414     for (x = 0; x < avctx->
width * 2; x += 4) {
 
  415         dst[x    ] =        dst[x    ] + 
L[0];
 
  416         dst[x + 2] = 
L[0] = dst[x + 2] + 
L[0];
 
  417         L[1] = dst[x + 1] + 
L[1];
 
  419         L[2] = dst[x + 3] + 
L[2];
 
  424     for (y = 1; y < avctx->
height; y++) {
 
  426         dst[x    ] =        dst[x    ] + 
L[0] + dst[x + 0 - p->
linesize[0]] - TL[0];
 
  427         dst[x + 2] = 
L[0] = dst[x + 2] + 
L[0] + dst[x + 2 - p->
linesize[0]] - TL[0];
 
  428         TL[0] = dst[x + 2 - p->
linesize[0]];
 
  429         L[1] = dst[x + 1] + 
L[1] + dst[x + 1 - p->
linesize[0]] - TL[1];
 
  431         TL[1] = dst[x + 1 - p->
linesize[0]];
 
  432         L[2] = dst[x + 3] + 
L[2] + dst[x + 3 - p->
linesize[0]] - TL[2];
 
  434         TL[2] = dst[x + 3 - p->
linesize[0]];
 
  435         for (x = 4; x < avctx->
width * 2; x += 4) {
 
  436             dst[x    ] =        dst[x    ] + 
L[0] + dst[x + 0 - p->
linesize[0]] - TL[0];
 
  437             dst[x + 2] = 
L[0] = dst[x + 2] + 
L[0] + dst[x + 2 - p->
linesize[0]] - TL[0];
 
  438             TL[0] = dst[x + 2 - p->
linesize[0]];
 
  439             L[1] = dst[x + 1] + 
L[1] + dst[x + 1 - p->
linesize[0]] - TL[1];
 
  441             TL[1] = dst[x + 1 - p->
linesize[0]];
 
  442             L[2] = dst[x + 3] + 
L[2] + dst[x + 3 - p->
linesize[0]] - TL[2];
 
  444             TL[2] = dst[x + 3 - p->
linesize[0]];
 
  465     s->table_bits_size = 0;
 
  467     s->bitstream_bits_size = 0;