comparison lzwenc.c @ 4832:8a5cbe8e014e libavcodec

remove code_prefix variable, no speed change
author michael
date Mon, 09 Apr 2007 22:21:49 +0000
parents 4a7e1f5cdc7a
children cad24e81a7b4
comparison
equal deleted inserted replaced
4831:4a7e1f5cdc7a 4832:8a5cbe8e014e
218 * @return Number of bytes written or -1 on error 218 * @return Number of bytes written or -1 on error
219 */ 219 */
220 int ff_lzw_encode(LZWEncodeState * s, const uint8_t * inbuf, int insize) 220 int ff_lzw_encode(LZWEncodeState * s, const uint8_t * inbuf, int insize)
221 { 221 {
222 int i; 222 int i;
223 int code_prefix = s->last_code;
224 223
225 if(insize * 3 > (s->bufsize - s->output_bytes) * 2){ 224 if(insize * 3 > (s->bufsize - s->output_bytes) * 2){
226 return -1; 225 return -1;
227 } 226 }
228 227
229 if (code_prefix == LZW_PREFIX_EMPTY) 228 if (s->last_code == LZW_PREFIX_EMPTY)
230 clearTable(s); 229 clearTable(s);
231 230
232 for (i = 0; i < insize; i++) { 231 for (i = 0; i < insize; i++) {
233 uint8_t c = *inbuf++; 232 uint8_t c = *inbuf++;
234 int code = findCode(s, c, code_prefix); 233 int code = findCode(s, c, s->last_code);
235 if (s->tab[code].hash_prefix == LZW_PREFIX_FREE) { 234 if (s->tab[code].hash_prefix == LZW_PREFIX_FREE) {
236 writeCode(s, code_prefix); 235 writeCode(s, s->last_code);
237 addCode(s, c, code_prefix, code); 236 addCode(s, c, s->last_code, code);
238 code= hash(0, c); 237 code= hash(0, c);
239 } 238 }
240 code_prefix = s->tab[code].code; 239 s->last_code = s->tab[code].code;
241 if (s->tabsize >= s->maxcode - 1) { 240 if (s->tabsize >= s->maxcode - 1) {
242 clearTable(s); 241 clearTable(s);
243 } 242 }
244 } 243 }
245 s->last_code = code_prefix;
246 244
247 return writtenBytes(s); 245 return writtenBytes(s);
248 } 246 }
249 247
250 /** 248 /**