set pict_type & key_frame on decoding too
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 12 Sep 2002 00:27:08 +0000 (00:27 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 12 Sep 2002 00:27:08 +0000 (00:27 +0000)
Originally committed as revision 918 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/avcodec.h
libavcodec/mpegvideo.c

index 96db4d9..123c58f 100644 (file)
@@ -182,7 +182,7 @@ typedef struct AVCodecContext {
     int key_frame;      /* true if the previous compressed frame was 
                            a key frame (intra, or seekable) */
     int pict_type;      /* picture type of the previous 
-                           encoded frame */
+                           en/decoded frame */
 /* FIXME: these should have FF_ */
 #define I_TYPE 1 // Intra
 #define P_TYPE 2 // Predicted
index e26024c..619cf50 100644 (file)
@@ -720,7 +720,8 @@ void MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
 /* generic function for encode/decode called after a frame has been coded/decoded */
 void MPV_frame_end(MpegEncContext *s)
 {
-//    if((s->picture_number%100)==0 && s->encoding) printf("sads:%d //\n", sads);
+    s->avctx->key_frame   = (s->pict_type == I_TYPE);
+    s->avctx->pict_type   = s->pict_type;
 
     /* draw edge for correct motion prediction if outside */
     if (s->pict_type != B_TYPE && !s->intra_only && !(s->flags&CODEC_FLAG_EMU_EDGE)) {
@@ -870,8 +871,7 @@ int MPV_encode_picture(AVCodecContext *avctx,
         MPV_frame_start(s, avctx);
 
         encode_picture(s, s->picture_number);
-        avctx->key_frame   = (s->pict_type == I_TYPE);
-        avctx->pict_type   = s->pict_type;
+        
         avctx->real_pict_num  = s->picture_number;
         avctx->header_bits = s->header_bits;
         avctx->mv_bits     = s->mv_bits;