check return value of decode_cabac_mb_dqp, it is INT_MIN on error.

fixes crash with http://stud4.tuwien.ac.at/~e0326863/ats/bbc-sample_small.mpg
and MPlayer's broken packetizer (but will not decode right of course).

Originally committed as revision 4595 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Reimar Döffinger 20 years ago
parent 18ae520b72
commit 357a28430a
  1. 4
      libavcodec/h264.c

@ -6044,6 +6044,10 @@ decode_intra_mb:
} }
h->last_qscale_diff = dqp = decode_cabac_mb_dqp( h ); h->last_qscale_diff = dqp = decode_cabac_mb_dqp( h );
if( dqp == INT_MIN ){
av_log(h->s.avctx, AV_LOG_ERROR, "cabac decode of qscale diff failed at %d %d\n", s->mb_x, s->mb_y);
return -1;
}
s->qscale += dqp; s->qscale += dqp;
if(((unsigned)s->qscale) > 51){ if(((unsigned)s->qscale) > 51){
if(s->qscale<0) s->qscale+= 52; if(s->qscale<0) s->qscale+= 52;

Loading…
Cancel
Save