hurry_up>=5 -> skip everything except header & set pict_type&key_frame
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 10 Nov 2002 10:54:07 +0000 (10:54 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 10 Nov 2002 10:54:07 +0000 (10:54 +0000)
Originally committed as revision 1182 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/avcodec.h
libavcodec/h263dec.c

index b7a8e03..59c42a3 100644 (file)
@@ -5,8 +5,8 @@
 
 #define LIBAVCODEC_VERSION_INT 0x000406
 #define LIBAVCODEC_VERSION     "0.4.6"
-#define LIBAVCODEC_BUILD       4636
-#define LIBAVCODEC_BUILD_STR   "4636"
+#define LIBAVCODEC_BUILD       4637
+#define LIBAVCODEC_BUILD_STR   "4637"
 
 enum CodecID {
     CODEC_ID_NONE, 
@@ -356,7 +356,7 @@ typedef struct AVCodecContext {
 
     /**
      * encoding: unused
-     * decoding: set by user. 1-> skip b frames, 2-> skip idct/dequant too
+     * decoding: set by user. 1-> skip b frames, 2-> skip idct/dequant too, 5-> skip everything except header
      */
     int hurry_up;
     
index 8386fcf..5f80a72 100644 (file)
@@ -525,10 +525,16 @@ retry:
         fprintf(stderr, "header damaged\n");
         return -1;
     }
+    
+    s->avctx->key_frame   = (s->pict_type == I_TYPE);
+    s->avctx->pict_type   = s->pict_type;
+
     /* skip b frames if we dont have reference frames */
     if(s->num_available_buffers<2 && s->pict_type==B_TYPE) return get_consumed_bytes(s, buf_size);
     /* skip b frames if we are in a hurry */
     if(s->hurry_up && s->pict_type==B_TYPE) return get_consumed_bytes(s, buf_size);
+    /* skip everything if we are in a hurry>=5 */
+    if(s->hurry_up>=5) return get_consumed_bytes(s, buf_size);
     
     if(s->next_p_frame_damaged){
         if(s->pict_type==B_TYPE)