]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Skip non intra frames that have no reference frames.
authormichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Thu, 9 Apr 2009 20:13:35 +0000 (20:13 +0000)
committermichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Thu, 9 Apr 2009 20:13:35 +0000 (20:13 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18395 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/snow.c

index 501b60dde49898e073d9010a2f0b2432b57c0b5b..ffdf1ffd02833fda53679c356f110e8edb6cb35a 100644 (file)
@@ -4145,6 +4145,10 @@ static int frame_start(SnowContext *s){
             if(i && s->last_picture[i-1].key_frame)
                 break;
         s->ref_frames= i;
+        if(s->ref_frames==0){
+            av_log(s->avctx,AV_LOG_ERROR, "No reference frames\n");
+            return -1;
+        }
     }
 
     s->current_picture.reference= 1;
@@ -4520,7 +4524,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, AVPac
 
     alloc_blocks(s);
 
-    frame_start(s);
+    if(frame_start(s) < 0)
+        return -1;
     //keyframe flag duplication mess FIXME
     if(avctx->debug&FF_DEBUG_PICT_INFO)
         av_log(avctx, AV_LOG_ERROR, "keyframe:%d qlog:%d\n", s->keyframe, s->qlog);