# HG changeset patch # User michael # Date 1168656305 0 # Node ID 855350bd0daf14c17e1cc61588ffbfd325f8547f # Parent 88967250d7189dd64c906c4183806ea63d3e5d66 some interlaced direct sanity checks diff -r 88967250d718 -r 855350bd0daf h263.c --- a/h263.c Sat Jan 13 01:00:37 2007 +0000 +++ b/h263.c Sat Jan 13 02:45:05 2007 +0000 @@ -5928,6 +5928,10 @@ - ROUNDED_DIV(s->last_non_b_time - s->pp_time, s->t_frame))*2; s->pb_field_time= ( ROUNDED_DIV(s->time, s->t_frame) - ROUNDED_DIV(s->last_non_b_time - s->pp_time, s->t_frame))*2; + if(!s->progressive_sequence){ + if(s->pp_field_time <= s->pb_field_time || s->pb_field_time <= 1) + return FRAME_SKIPPED; + } } //av_log(s->avctx, AV_LOG_DEBUG, "last nonb %"PRId64" last_base %d time %"PRId64" pp %d pb %d t %d ppf %d pbf %d\n", s->last_non_b_time, s->last_time_base, s->time, s->pp_time, s->pb_time, s->t_frame, s->pp_field_time, s->pb_field_time); diff -r 88967250d718 -r 855350bd0daf mpegvideo.c --- a/mpegvideo.c Sat Jan 13 01:00:37 2007 +0000 +++ b/mpegvideo.c Sat Jan 13 02:45:05 2007 +0000 @@ -4630,6 +4630,7 @@ s->parse_context.index= 0; s->parse_context.last_index= 0; s->bitstream_buffer_size=0; + s->pp_time=0; } #ifdef CONFIG_ENCODERS