diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 803963c6381109124bf7a5ee1b2a975fc54ee02d..a3efe81c5b7fd836b4bf8defd0331c67a171d181 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 4605 -#define LIBAVCODEC_BUILD_STR "4605" +#define LIBAVCODEC_BUILD 4606 +#define LIBAVCODEC_BUILD_STR "4606" enum CodecID { CODEC_ID_NONE, @@ -145,11 +145,22 @@ typedef struct AVCodecContext { int sample_fmt; /* sample format, currenly unused */ /* the following data should not be initialized */ - int frame_size; /* in samples, initialized when calling 'init' */ - int frame_number; /* audio or video frame number */ - int key_frame; /* true if the previous compressed frame was - a key frame (intra, or seekable) */ - int delay; /* number of frames the decoded output will be delayed relative to the encoded input */ + int frame_size; /* in samples, initialized when calling 'init' */ + int frame_number; /* audio or video frame number */ + int real_pict_num; /* returns the real picture number of + previous encoded frame */ + 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 */ +/* FIXME: these should have FF_ */ +#define I_TYPE 1 // Intra +#define P_TYPE 2 // Predicted +#define B_TYPE 3 // Bi-dir predicted +#define S_TYPE 4 // S(GMC)-VOP MPEG4 + + int delay; /* number of frames the decoded output + will be delayed relative to the encoded input */ uint8_t *mbskip_table; /* =1 if MB didnt change, is only valid for I/P frames stride= mb_width = (width+15)>>4 */ diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c index 1ba246ae5cdc06fed9118802f246c0972b7dff3c..0cd815bc57a60bf083d3589591f5386ea2a8ab55 100644 --- a/libavcodec/motion_est.c +++ b/libavcodec/motion_est.c @@ -25,7 +25,7 @@ #include "dsputil.h" #include "mpegvideo.h" -#define ABS(a) ((a)>0 ? (a) : -(a)) +//#define ABS(a) ((a)>0 ? (a) : -(a)) #define MAX(a,b) ((a) > (b) ? (a) : (b)) #define INTER_BIAS 257 diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 19deb2da99a262e1bbd25557755fc05618ade157..d4b22138b59fdd79667c58c0a2d34f4572ae5fff 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -793,7 +793,9 @@ int MPV_encode_picture(AVCodecContext *avctx, MPV_frame_start(s); encode_picture(s, s->picture_number); - avctx->key_frame = (s->pict_type == I_TYPE); + 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; avctx->misc_bits = s->misc_bits; diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 1a3c853e26632132425e2c3fc646934326b0febc..3b44644def7e562d65fd831ca4cd869f6c55f8b3 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -17,12 +17,6 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* Macros for picture code type. */ -#define I_TYPE 1 -#define P_TYPE 2 -#define B_TYPE 3 -#define S_TYPE 4 //S(GMC)-VOP MPEG4 - #define FRAME_SKIPED 100 // return value for header parsers if frame is not coded enum OutputFormat {