changeset 2813:6fd9dbb8c385 libavcodec

try to check for nonsense time_base instead of setting fake one
author michael
date Sun, 31 Jul 2005 10:00:25 +0000
parents 18b231c1cb3d
children 48fb350b0ec9
files h263.c
diffstat 1 files changed, 4 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/h263.c	Sat Jul 30 16:15:36 2005 +0000
+++ b/h263.c	Sun Jul 31 10:00:25 2005 +0000
@@ -5156,7 +5156,6 @@
                 s->avctx->time_base.num*= get_bits(&s->gb, 7);
                 if(s->avctx->time_base.num == 0){
                     av_log(s, AV_LOG_ERROR, "zero framerate\n");
-                    s->avctx->time_base= (AVRational){1001, 30000}; //prevent crash
                     return -1;
                 }
                 gcd= ff_gcd(s->avctx->time_base.den, s->avctx->time_base.num);
@@ -5801,10 +5800,6 @@
     else
         s->decode_mb= ff_mpeg4_decode_mb;
 
-    if(s->avctx->time_base.den==0){
-        s->avctx->time_base.den=1;
-//        fprintf(stderr, "time_increment_resolution is illegal\n");
-    }
     time_incr=0;
     while (get_bits1(gb) != 0) 
         time_incr++;
@@ -5856,7 +5851,10 @@
     }
 //av_log(s->avctx, AV_LOG_DEBUG, "last nonb %Ld last_base %d time %Ld 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);
     
-    s->current_picture_ptr->pts= (s->time + s->avctx->time_base.num/2) / s->avctx->time_base.num;
+    if(s->avctx->time_base.num)
+        s->current_picture_ptr->pts= (s->time + s->avctx->time_base.num/2) / s->avctx->time_base.num;
+    else
+        s->current_picture_ptr->pts= AV_NOPTS_VALUE;
     if(s->avctx->debug&FF_DEBUG_PTS)
         av_log(s->avctx, AV_LOG_DEBUG, "MPEG4 PTS: %Ld\n", s->current_picture_ptr->pts);