diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-11-10 10:54:07 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-11-10 10:54:07 +0000 |
commit | 347ae22ecf3b10b0dd5293bfc3764873fe42b03d (patch) | |
tree | ebfb36c77f3c7ec932b042bc1576dc8395c1be9e /libavcodec | |
parent | 8cd5be983bf1020c82deff7a63bd8c290ab9bd52 (diff) | |
download | ffmpeg-streaming-347ae22ecf3b10b0dd5293bfc3764873fe42b03d.zip ffmpeg-streaming-347ae22ecf3b10b0dd5293bfc3764873fe42b03d.tar.gz |
hurry_up>=5 -> skip everything except header & set pict_type&key_frame
Originally committed as revision 1182 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/avcodec.h | 6 | ||||
-rw-r--r-- | libavcodec/h263dec.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index b7a8e03..59c42a3 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 8386fcf..5f80a72 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) |