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 }