From 029911d1c362939b4664e471bb9b13060a31ebde Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 25 Aug 2003 22:47:32 +0000 Subject: mpeg2 encoding Originally committed as revision 2164 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mpegvideo.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'libavcodec/mpegvideo.h') diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index a80431520d..279c7f9467 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -48,8 +48,13 @@ enum OutputFormat { #define MAX_PICTURE_COUNT 15 +#if 1 +#define ME_MAP_SIZE 4096 +#define ME_MAP_SHIFT 6 +#else #define ME_MAP_SIZE 64 #define ME_MAP_SHIFT 3 +#endif #define ME_MAP_MV_BITS 11 /* run length table */ @@ -385,8 +390,10 @@ typedef struct MpegEncContext { int me_method; ///< ME algorithm int scene_change_score; int mv_dir; -#define MV_DIR_BACKWARD 1 -#define MV_DIR_FORWARD 2 +#define MV_DIR_L1 1 +#define MV_DIR_L0 2 +#define MV_DIR_BACKWARD MV_DIR_L1 +#define MV_DIR_FORWARD MV_DIR_L0 #define MV_DIRECT 4 ///< bidirectional mode where the difference equals the MV of the last P/S/I-Frame (mpeg4) int mv_type; #define MV_TYPE_16X16 0 ///< 1 vector for the whole mb @@ -568,6 +575,11 @@ typedef struct MpegEncContext { uint8_t *tex_pb_buffer; uint8_t *pb2_buffer; int mpeg_quant; +#define FF_QUANT_DEFAULT 0 +#define FF_QUANT_MPEG2 1 +#define FF_QUANT_MPEG1 2 +#define FF_QUANT_H263 3 + int16_t (*field_mv_table)[2][2]; ///< used for interlaced b frame decoding int8_t (*field_select_table)[2]; ///< wtf, no really another table for interlaced b frames int t_frame; ///< time distance of first I -> B, used for interlaced b frames @@ -644,7 +656,6 @@ typedef struct MpegEncContext { int repeat_first_field; int chroma_420_type; int progressive_frame; - int mpeg2; int full_pel[2]; int interlaced_dct; int first_slice; @@ -652,7 +663,7 @@ typedef struct MpegEncContext { /* RTP specific */ /* These are explained on avcodec.h */ - int rtp_mode; + int rtp_mode; //FIXME simplify this mess (remove callback, merge mode + payload) int rtp_payload_size; void (*rtp_callback)(void *data, int size, int packet_number); uint8_t *ptr_lastgob; @@ -870,6 +881,7 @@ int msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size); int ff_msmpeg4_decode_init(MpegEncContext *s); void ff_msmpeg4_encode_init(MpegEncContext *s); int ff_wmv2_decode_picture_header(MpegEncContext * s); +int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s); void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr); void ff_mspel_motion(MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, -- cgit v1.2.3