summaryrefslogtreecommitdiff
path: root/libavcodec/mpegvideo.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2003-08-25 22:47:32 +0000
committerMichael Niedermayer <michaelni@gmx.at>2003-08-25 22:47:32 +0000
commit029911d1c362939b4664e471bb9b13060a31ebde (patch)
treeff12ee3b493596d11aa9d4592da14e6986593e2c /libavcodec/mpegvideo.h
parent9b6a5b87a699f469c85ab0bc058988956f4bc012 (diff)
mpeg2 encoding
Originally committed as revision 2164 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.h')
-rw-r--r--libavcodec/mpegvideo.h20
1 files changed, 16 insertions, 4 deletions
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,