# HG changeset patch # User michael # Date 1259505100 0 # Node ID a228e8e3e347fa09296cc4be04a786bb34f0c25a # Parent c58c770b17f5c98ac3cf70ede93eaa8d504d0f07 Print errors instead of just ignoring contradictionary values in mpeg2 silently. diff -r c58c770b17f5 -r a228e8e3e347 mpeg12.c --- a/mpeg12.c Sun Nov 29 03:32:30 2009 +0000 +++ b/mpeg12.c Sun Nov 29 14:31:40 2009 +0000 @@ -1545,10 +1545,18 @@ s->chroma_420_type = get_bits1(&s->gb); s->progressive_frame = get_bits1(&s->gb); - if(s->progressive_sequence) + if(s->progressive_sequence && !s->progressive_frame){ s->progressive_frame= 1; - if(s->progressive_frame){ + av_log(s->avctx, AV_LOG_ERROR, "interlaced frame in progressive sequence, ignoring\n"); + } + + if(s->picture_structure==0 || (s->progressive_frame && s->picture_structure!=PICT_FRAME)){ + av_log(s->avctx, AV_LOG_ERROR, "picture_structure %d invalid, ignoring\n", s->picture_structure); s->picture_structure= PICT_FRAME; + } + + if(s->progressive_frame && !s->frame_pred_frame_dct){ + av_log(s->avctx, AV_LOG_ERROR, "invalid frame_pred_frame_dct\n"); s->frame_pred_frame_dct= 1; }