Browse Source

fixes rv10 decoding crash

Originally committed as revision 873 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Michael Niedermayer 23 years ago
parent
commit
ee3b2be65d
1 changed files with 8 additions and 1 deletions
  1. +8
    -1
      libavcodec/rv10.c

+ 8
- 1
libavcodec/rv10.c View File

@@ -296,6 +296,10 @@ static int rv10_decode_picture_header(MpegEncContext *s)
return -1; return -1;


s->qscale = get_bits(&s->gb, 5); s->qscale = get_bits(&s->gb, 5);
if(s->qscale==0){
fprintf(stderr, "error, qscale:0\n");
return -1;
}


if (s->pict_type == I_TYPE) { if (s->pict_type == I_TYPE) {
if (s->rv10_version == 3) { if (s->rv10_version == 3) {
@@ -322,7 +326,7 @@ static int rv10_decode_picture_header(MpegEncContext *s)
s->mb_y = 0; s->mb_y = 0;
mb_count = s->mb_width * s->mb_height; mb_count = s->mb_width * s->mb_height;
} }
//printf("%d\n", get_bits(&s->gb, 3));
get_bits(&s->gb, 3); /* ignored */ get_bits(&s->gb, 3); /* ignored */
s->f_code = 1; s->f_code = 1;
s->unrestricted_mv = 1; s->unrestricted_mv = 1;
@@ -353,6 +357,9 @@ static int rv10_decode_init(AVCodecContext *avctx)


h263_decode_init_vlc(s); h263_decode_init_vlc(s);


s->y_dc_scale_table=
s->c_dc_scale_table= ff_mpeg1_dc_scale_table;

/* init rv vlc */ /* init rv vlc */
if (!done) { if (!done) {
init_vlc(&rv_dc_lum, DC_VLC_BITS, 256, init_vlc(&rv_dc_lum, DC_VLC_BITS, 256,


Loading…
Cancel
Save