comparison rv10.c @ 621:980b661a494a libavcodec

fixes rv10 decoding crash
author michaelni
date Wed, 28 Aug 2002 09:19:28 +0000
parents 468d4800dbf1
children a1e54c24f221
comparison
equal deleted inserted replaced
620:a5aa53b6e648 621:980b661a494a
294 294
295 if (pb_frame) 295 if (pb_frame)
296 return -1; 296 return -1;
297 297
298 s->qscale = get_bits(&s->gb, 5); 298 s->qscale = get_bits(&s->gb, 5);
299 if(s->qscale==0){
300 fprintf(stderr, "error, qscale:0\n");
301 return -1;
302 }
299 303
300 if (s->pict_type == I_TYPE) { 304 if (s->pict_type == I_TYPE) {
301 if (s->rv10_version == 3) { 305 if (s->rv10_version == 3) {
302 /* specific MPEG like DC coding not used */ 306 /* specific MPEG like DC coding not used */
303 s->last_dc[0] = get_bits(&s->gb, 8); 307 s->last_dc[0] = get_bits(&s->gb, 8);
320 } else { 324 } else {
321 s->mb_x = 0; 325 s->mb_x = 0;
322 s->mb_y = 0; 326 s->mb_y = 0;
323 mb_count = s->mb_width * s->mb_height; 327 mb_count = s->mb_width * s->mb_height;
324 } 328 }
325 329 //printf("%d\n", get_bits(&s->gb, 3));
326 get_bits(&s->gb, 3); /* ignored */ 330 get_bits(&s->gb, 3); /* ignored */
327 s->f_code = 1; 331 s->f_code = 1;
328 s->unrestricted_mv = 1; 332 s->unrestricted_mv = 1;
329 #if 0 333 #if 0
330 s->h263_long_vectors = 1; 334 s->h263_long_vectors = 1;
350 354
351 if (MPV_common_init(s) < 0) 355 if (MPV_common_init(s) < 0)
352 return -1; 356 return -1;
353 357
354 h263_decode_init_vlc(s); 358 h263_decode_init_vlc(s);
359
360 s->y_dc_scale_table=
361 s->c_dc_scale_table= ff_mpeg1_dc_scale_table;
355 362
356 /* init rv vlc */ 363 /* init rv vlc */
357 if (!done) { 364 if (!done) {
358 init_vlc(&rv_dc_lum, DC_VLC_BITS, 256, 365 init_vlc(&rv_dc_lum, DC_VLC_BITS, 256,
359 rv_lum_bits, 1, 1, 366 rv_lum_bits, 1, 1,