comparison mpeg12.c @ 3287:1eaa95d9e999 libavcodec

d10 decoding fix
author michael
date Tue, 02 May 2006 09:03:22 +0000
parents 8d1b2cc2a75b
children 25d315fcca5a
comparison
equal deleted inserted replaced
3286:30d412952107 3287:1eaa95d9e999
2616 s->mb_x = 0; 2616 s->mb_x = 0;
2617 s->mb_y++; 2617 s->mb_y++;
2618 2618
2619 if(s->mb_y<<field_pic >= s->mb_height){ 2619 if(s->mb_y<<field_pic >= s->mb_height){
2620 int left= s->gb.size_in_bits - get_bits_count(&s->gb); 2620 int left= s->gb.size_in_bits - get_bits_count(&s->gb);
2621 2621 int is_d10= s->chroma_format==2 && s->pict_type==I_TYPE && avctx->profile==0 && avctx->level==5
2622 if(left < 0 || (left && show_bits(&s->gb, FFMIN(left, 23))) 2622 && s->intra_dc_precision == 2 && s->q_scale_type == 1 && s->alternate_scan == 0
2623 && s->progressive_frame == 0 /* vbv_delay == 0xBBB || 0xE10*/;
2624
2625 if(left < 0 || (left && show_bits(&s->gb, FFMIN(left, 23)) && !is_d10)
2623 || (avctx->error_resilience >= FF_ER_AGGRESSIVE && left>8)){ 2626 || (avctx->error_resilience >= FF_ER_AGGRESSIVE && left>8)){
2624 av_log(avctx, AV_LOG_ERROR, "end mismatch left=%d\n", left); 2627 av_log(avctx, AV_LOG_ERROR, "end mismatch left=%d %0X\n", left, show_bits(&s->gb, FFMIN(left, 23)));
2625 return -1; 2628 return -1;
2626 }else 2629 }else
2627 goto eos; 2630 goto eos;
2628 } 2631 }
2629 2632