changeset 4346:855350bd0daf libavcodec

some interlaced direct sanity checks
author michael
date Sat, 13 Jan 2007 02:45:05 +0000
parents 88967250d718
children a188a94e1b61
files h263.c mpegvideo.c
diffstat 2 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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);
 
--- 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