Mercurial > libavcodec.hg
comparison h264.c @ 2883:a95e55679dfa libavcodec
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).
author | reimar |
---|---|
date | Sat, 17 Sep 2005 08:15:07 +0000 |
parents | 7c7edddaa835 |
children | 4c6eb826e9cb |
comparison
equal
deleted
inserted
replaced
2882:dd5a1abbf9a3 | 2883:a95e55679dfa |
---|---|
6042 scan= s->qscale ? h->zigzag_scan : h->zigzag_scan_q0; | 6042 scan= s->qscale ? h->zigzag_scan : h->zigzag_scan_q0; |
6043 dc_scan= luma_dc_zigzag_scan; | 6043 dc_scan= luma_dc_zigzag_scan; |
6044 } | 6044 } |
6045 | 6045 |
6046 h->last_qscale_diff = dqp = decode_cabac_mb_dqp( h ); | 6046 h->last_qscale_diff = dqp = decode_cabac_mb_dqp( h ); |
6047 if( dqp == INT_MIN ){ | |
6048 av_log(h->s.avctx, AV_LOG_ERROR, "cabac decode of qscale diff failed at %d %d\n", s->mb_x, s->mb_y); | |
6049 return -1; | |
6050 } | |
6047 s->qscale += dqp; | 6051 s->qscale += dqp; |
6048 if(((unsigned)s->qscale) > 51){ | 6052 if(((unsigned)s->qscale) > 51){ |
6049 if(s->qscale<0) s->qscale+= 52; | 6053 if(s->qscale<0) s->qscale+= 52; |
6050 else s->qscale-= 52; | 6054 else s->qscale-= 52; |
6051 } | 6055 } |