34 #define CCITT_SYMS 104
37 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
38 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
39 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
40 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
41 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
42 128, 192, 256, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896,
43 960, 1024, 1088, 1152, 1216, 1280, 1344, 1408, 1472, 1536, 1600, 1664, 1728,
44 1792, 1856, 1920, 1984, 2048, 2112, 2176, 2240, 2304, 2368, 2432, 2496, 2560
50 0x35, 0x07, 0x07, 0x08, 0x0B, 0x0C, 0x0E, 0x0F, 0x13, 0x14, 0x07, 0x08, 0x08,
51 0x03, 0x34, 0x35, 0x2A, 0x2B, 0x27, 0x0C, 0x08, 0x17, 0x03, 0x04, 0x28, 0x2B,
52 0x13, 0x24, 0x18, 0x02, 0x03, 0x1A, 0x1B, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
53 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x04, 0x05, 0x0A, 0x0B, 0x52, 0x53, 0x54,
54 0x55, 0x24, 0x25, 0x58, 0x59, 0x5A, 0x5B, 0x4A, 0x4B, 0x32, 0x33, 0x34, 0x1B,
55 0x12, 0x17, 0x37, 0x36, 0x37, 0x64, 0x65, 0x68, 0x67, 0xCC, 0xCD, 0xD2, 0xD3,
56 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0x98, 0x99, 0x9A, 0x18, 0x9B,
57 0x08, 0x0C, 0x0D, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F
60 0x37, 0x02, 0x03, 0x02, 0x03, 0x03, 0x02, 0x03, 0x05, 0x04, 0x04, 0x05, 0x07,
61 0x04, 0x07, 0x18, 0x17, 0x18, 0x08, 0x67, 0x68, 0x6C, 0x37, 0x28, 0x17, 0x18,
62 0xCA, 0xCB, 0xCC, 0xCD, 0x68, 0x69, 0x6A, 0x6B, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
63 0xD7, 0x6C, 0x6D, 0xDA, 0xDB, 0x54, 0x55, 0x56, 0x57, 0x64, 0x65, 0x52, 0x53,
64 0x24, 0x37, 0x38, 0x27, 0x28, 0x58, 0x59, 0x2B, 0x2C, 0x5A, 0x66, 0x67, 0x0F,
65 0xC8, 0xC9, 0x5B, 0x33, 0x34, 0x35, 0x6C, 0x6D, 0x4A, 0x4B, 0x4C, 0x4D, 0x72,
66 0x73, 0x74, 0x75, 0x76, 0x77, 0x52, 0x53, 0x54, 0x55, 0x5A, 0x5B, 0x64, 0x65,
67 0x08, 0x0C, 0x0D, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F
74 8, 6, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7,
75 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
76 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
77 8, 8, 8, 8, 5, 5, 6, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,
78 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 9, 11, 11, 11, 12, 12, 12, 12, 12, 12,
82 10, 3, 2, 2, 3, 4, 4, 5, 6, 6, 7, 7, 7, 8, 8, 9, 10, 10, 10, 11,
83 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
84 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
85 12, 12, 12, 12, 10, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
86 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 11, 11, 11, 12, 12, 12, 12, 12, 12,
92 1, 1, 2, 2, 2, 1, 3, 3, 3, 1, 1
96 4, 3, 7, 6, 3, 1, 3, 6, 7, 7, 9
111 for (
i = 0;
i < 2;
i++) {
126 unsigned int *pix_left,
int **runs,
127 const int *runend,
int *
mode)
158 for (k = 0; k < 2; k++) {
161 *(*runs)++ = saved_run;
162 if (*runs >= runend) {
166 if (*pix_left <= saved_run) {
170 *pix_left -= saved_run;
174 saved_run += codes[k];
178 *(*runs)++ = saved_run;
179 if (*runs >= runend) {
183 if (*pix_left <= saved_run) {
184 if (*pix_left == saved_run)
189 *pix_left -= saved_run;
192 if (newmode != *
mode) {
194 if (*runs >= runend) {
204 unsigned int pix_left,
int *runs,
208 unsigned int run = 0;
217 if (runs >= runend) {
221 if (pix_left <=
run) {
230 }
else if ((
int)t == -1) {
250 unsigned int width,
int *runs,
251 const int *runend,
const int *
ref)
253 int mode = 0, saved_run = 0, t;
254 int run_off = *
ref++;
255 unsigned int offs = 0,
run = 0;
257 while (offs <
width) {
269 run = run_off - offs;
278 }
else if (cmode == 1) {
280 for (k = 0; k < 2; k++) {
294 *runs++ =
run + saved_run;
295 if (runs >= runend) {
307 }
else if (cmode == 9 || cmode == 10) {
312 if (cmode == 9 && xxx == 7) {
314 int pix_left =
width - offs;
317 av_log(avctx,
AV_LOG_ERROR,
"saved run %d on entering uncompressed mode\n", saved_run);
321 offs =
width - pix_left;
331 run = run_off - offs + (cmode - 5);
338 *runs++ =
run + saved_run;
339 if (runs >= runend) {
347 while (offs <
width && run_off <= offs) {
354 if (runs >= runend) {
369 while (pix_left > 0) {
370 run = runs[run_idx++];
373 for (;
run > 16;
run -= 16)
383 unsigned int state = -1;
385 while (srcsize-- > 0) {
387 if ((
state & 0xFFF) == 1)
399 int *runs, *
ref =
NULL, *runend;
401 int runsize = avctx->
width + 2;
417 for (j = 0; j <
height; j++) {
418 runend = runs + runsize;