Mercurial > libavcodec.hg
comparison lzw.c @ 4726:ecb663d00b6b libavcodec
factorize
author | michael |
---|---|
date | Sun, 25 Mar 2007 14:02:54 +0000 |
parents | 74caca70e2b3 |
children | 23f8f6efc870 |
comparison
equal
deleted
inserted
replaced
4725:74caca70e2b3 | 4726:ecb663d00b6b |
---|---|
190 l = len; | 190 l = len; |
191 sp = s->sp; | 191 sp = s->sp; |
192 oc = s->oc; | 192 oc = s->oc; |
193 fc = s->fc; | 193 fc = s->fc; |
194 | 194 |
195 while (sp > s->stack) { | |
196 *buf++ = *(--sp); | |
197 if ((--l) == 0) | |
198 goto the_end; | |
199 } | |
200 | |
201 for (;;) { | 195 for (;;) { |
196 while (sp > s->stack) { | |
197 *buf++ = *(--sp); | |
198 if ((--l) == 0) | |
199 goto the_end; | |
200 } | |
202 c = lzw_get_code(s); | 201 c = lzw_get_code(s); |
203 if (c == s->end_code) { | 202 if (c == s->end_code) { |
204 s->end_code = -1; | 203 s->end_code = -1; |
205 break; | 204 break; |
206 } else if (c == s->clear_code) { | 205 } else if (c == s->clear_code) { |
240 if (s->cursize < LZW_MAXBITS) { | 239 if (s->cursize < LZW_MAXBITS) { |
241 s->top_slot <<= 1; | 240 s->top_slot <<= 1; |
242 s->curmask = mask[++s->cursize]; | 241 s->curmask = mask[++s->cursize]; |
243 } | 242 } |
244 } | 243 } |
245 while (sp > s->stack) { | |
246 *buf++ = *(--sp); | |
247 if ((--l) == 0) | |
248 goto the_end; | |
249 } | |
250 } | 244 } |
251 } | 245 } |
252 the_end: | 246 the_end: |
253 s->sp = sp; | 247 s->sp = sp; |
254 s->oc = oc; | 248 s->oc = oc; |