52 int buf_size = avpkt->
size;
55 uint8_t *src, *dst_offset, colour1, colour2;
76 pal = (uint32_t *)frame->
data[1];
80 for (j = 0; j < 3; j++, shift -= 8)
81 *pal += ((avctx->
extradata[i * 3 + j] << 2) |
82 (avctx->
extradata[i * 3 + j] >> 4)) << shift;
93 while (dst != frame_end) {
94 static const uint8_t lentab[4] = { 0, 2, 0, 1 };
95 unsigned int byte = bytestream2_get_byte(&g),
av_uninit(offset);
96 unsigned int code = byte >> 6;
97 unsigned int length = byte & ~0xC0;
101 "Input resolution larger than actual frame.\n");
108 length = bytestream2_get_byte(&g);
109 offset = bytestream2_get_le16(&g);
111 length = bytestream2_get_le16(&g);
112 if (code == 2 && length == 0)
117 offset = bytestream2_get_byte(&g);
121 if (dst + (length << lentab[code]) > frame_end)
134 dst_offset = dst - offset;
136 if (dst_offset < bfi->dst)
139 *dst++ = *dst_offset++;
145 colour1 = bytestream2_get_byte(&g);
146 colour2 = bytestream2_get_byte(&g);
156 dst = frame->
data[0];
158 memcpy(dst, src, avctx->
width);