printf (" Interplay video: decode finished with %d bytes left over\n",
av_log(s->avctx, AV_LOG_ERROR, " Interplay video: decode finished with %d bytes left over\n",
static void ipvideo_decode_opcodes(IpvideoContext *s){    int x, y;    int index = 0;    unsigned char opcode;    int ret;    int code_counts[16];    static int frame = 0;    debug_interplay("------------------ frame %d\n", frame);    frame++;    for (x = 0; x < 16; x++)        code_counts[x] = 0;    /* this is PAL8, so make the palette available */    memcpy(s->current_frame.data[1], s->avctx->palctrl->palette, PALETTE_COUNT * 4);    s->stride = s->current_frame.linesize[0];    s->stream_ptr = s->buf + 14;  /* data starts 14 bytes in */    s->stream_end = s->buf + s->size;    s->line_inc = s->stride - 8;    s->upper_motion_limit_offset = (s->avctx->height - 8) * s->stride        + s->avctx->width - 8;    s->dsp = s->dsp;    for (y = 0; y < (s->stride * s->avctx->height); y += s->stride * 8) {        for (x = y; x < y + s->avctx->width; x += 8) {            /* bottom nibble first, then top nibble (which makes it             * hard to use a GetBitcontext) */            if (index & 1)                opcode = s->decoding_map[index >> 1] >> 4;            else                opcode = s->decoding_map[index >> 1] & 0xF;            index++;            debug_interplay("  block @ (%3d, %3d): encoding 0x%X, data ptr @ %p\n",                x - y, y / s->stride, opcode, s->stream_ptr);            code_counts[opcode]++;            s->pixel_ptr = s->current_frame.data[0] + x;            ret = ipvideo_decode_block[opcode](s);            if (ret != 0) {                printf(" Interplay video: decode problem on frame %d, @ block (%d, %d)\n",                    frame, x - y, y / s->stride);                return;            }        }    }    if ((s->stream_ptr != s->stream_end) &&        (s->stream_ptr + 1 != s->stream_end)) {        printf (" Interplay video: decode finished with %d bytes left over\n",            s->stream_end - s->stream_ptr);    }}