Mercurial > libavcodec.hg
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 |