diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-03-27 21:25:22 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-03-27 21:25:22 +0000 |
commit | ba6802debf8167f8b9259e83f820dfb53c15a227 (patch) | |
tree | 7b2026be763be17427d263c2f74d9a818e5154eb /libavcodec/mpegvideo.h | |
parent | 52075cdeaa0cfd5fede7eddf7d037c226783de4b (diff) | |
download | ffmpeg-ba6802debf8167f8b9259e83f820dfb53c15a227.tar.gz |
4MV motion estimation (not finished yet)
SAD functions rewritten (8x8 support & MMX2 optimizations)
HQ inter/intra decission
msmpeg4 encoding bugfix (MV where too long)
Originally committed as revision 362 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.h')
-rw-r--r-- | libavcodec/mpegvideo.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 49c36bec21..03e9eaf550 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -65,7 +65,7 @@ typedef struct MpegEncContext { int qmax; /* max qscale */ int max_qdiff; /* max qscale difference between frames */ int encoding; /* true if we are encoding (vs decoding) */ - int hq; /* set if CODEC_FLAG_HQ is used in AVCodecContext.flags */ + int flags; /* AVCodecContext.flags (HQ, MV4, ...) */ /* the following fields are managed internally by the encoder */ /* bit output */ @@ -141,8 +141,16 @@ typedef struct MpegEncContext { int mb_x, mb_y; int mb_incr; int mb_intra; - INT16 *mb_var; /* Table for MB variances */ - char *mb_type; /* Table for MB type */ + UINT16 *mb_var; /* Table for MB variances */ + UINT8 *mb_type; /* Table for MB type */ +#define MB_TYPE_INTRA 0x01 +#define MB_TYPE_INTER 0x02 +#define MB_TYPE_INTER4V 0x04 +#define MB_TYPE_SKIPED 0x08 +#define MB_TYPE_DIRECT 0x10 +#define MB_TYPE_FORWARD 0x20 +#define MB_TYPE_BACKWAD 0x40 +#define MB_TYPE_BIDIR 0x80 int block_index[6]; int block_wrap[6]; @@ -295,7 +303,10 @@ typedef struct MpegEncContext { UINT8 *ptr_last_mb_line; UINT32 mb_line_avgsize; - DCTELEM block[6][64] __align8; + DCTELEM (*block)[64]; /* points to one of the following blocks */ + DCTELEM intra_block[6][64] __align8; + DCTELEM inter_block[6][64] __align8; + DCTELEM inter4v_block[6][64] __align8; void (*dct_unquantize)(struct MpegEncContext *s, DCTELEM *block, int n, int qscale); } MpegEncContext; @@ -311,9 +322,8 @@ void MPV_common_init_mmx(MpegEncContext *s); /* motion_est.c */ -int estimate_motion(MpegEncContext *s, - int mb_x, int mb_y, - int *mx_ptr, int *my_ptr); +void estimate_motion(MpegEncContext *s, + int mb_x, int mb_y); /* mpeg12.c */ extern INT16 default_intra_matrix[64]; |