summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2002-11-10 10:54:07 +0000
committerMichael Niedermayer <michaelni@gmx.at>2002-11-10 10:54:07 +0000
commit347ae22ecf3b10b0dd5293bfc3764873fe42b03d (patch)
treeebfb36c77f3c7ec932b042bc1576dc8395c1be9e
parent8cd5be983bf1020c82deff7a63bd8c290ab9bd52 (diff)
hurry_up>=5 -> skip everything except header & set pict_type&key_frame
Originally committed as revision 1182 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/avcodec.h6
-rw-r--r--libavcodec/h263dec.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index b7a8e03fd1..59c42a3942 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -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;
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index 8386fcf599..5f80a72d8c 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -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)