Commit 6a13505c authored by Anton Khirnov's avatar Anton Khirnov

mpegvideo: move the MpegEncContext fields used from arm asm to the beginning

This should reduce the frequency with which the offsets need to be
updated.
parent 5a70a783
...@@ -22,11 +22,11 @@ ...@@ -22,11 +22,11 @@
#define AVCODEC_ARM_ASM_OFFSETS_H #define AVCODEC_ARM_ASM_OFFSETS_H
/* MpegEncContext */ /* MpegEncContext */
#define Y_DC_SCALE 0xa8 #define Y_DC_SCALE 0x04
#define C_DC_SCALE 0xac #define C_DC_SCALE 0x08
#define AC_PRED 0xb0 #define AC_PRED 0x0c
#define BLOCK_LAST_INDEX 0xb4 #define BLOCK_LAST_INDEX 0x10
#define H263_AIC 0xe4 #define H263_AIC 0x40
#define INTER_SCANTAB_RASTER_END 0x12c #define INTER_SCANTAB_RASTER_END 0x88
#endif /* AVCODEC_ARM_ASM_OFFSETS_H */ #endif /* AVCODEC_ARM_ASM_OFFSETS_H */
...@@ -197,6 +197,21 @@ typedef struct MotionEstContext{ ...@@ -197,6 +197,21 @@ typedef struct MotionEstContext{
*/ */
typedef struct MpegEncContext { typedef struct MpegEncContext {
AVClass *class; AVClass *class;
int y_dc_scale, c_dc_scale;
int ac_pred;
int block_last_index[12]; ///< last non zero coefficient in block
int h263_aic; ///< Advanded INTRA Coding (AIC)
/* scantables */
ScanTable inter_scantable; ///< if inter == intra then intra should be used to reduce tha cache usage
ScanTable intra_scantable;
ScanTable intra_h_scantable;
ScanTable intra_v_scantable;
/* WARNING: changes above this line require updates to hardcoded
* offsets used in asm. */
struct AVCodecContext *avctx; struct AVCodecContext *avctx;
/* the following parameters must be initialized before encoding */ /* the following parameters must be initialized before encoding */
int width, height;///< picture size. must be a multiple of 16 int width, height;///< picture size. must be a multiple of 16
...@@ -243,20 +258,6 @@ typedef struct MpegEncContext { ...@@ -243,20 +258,6 @@ typedef struct MpegEncContext {
Picture **input_picture; ///< next pictures on display order for encoding Picture **input_picture; ///< next pictures on display order for encoding
Picture **reordered_input_picture; ///< pointer to the next pictures in codedorder for encoding Picture **reordered_input_picture; ///< pointer to the next pictures in codedorder for encoding
int y_dc_scale, c_dc_scale;
int ac_pred;
int block_last_index[12]; ///< last non zero coefficient in block
int h263_aic; ///< Advanded INTRA Coding (AIC)
/* scantables */
ScanTable inter_scantable; ///< if inter == intra then intra should be used to reduce tha cache usage
ScanTable intra_scantable;
ScanTable intra_h_scantable;
ScanTable intra_v_scantable;
/* WARNING: changes above this line require updates to hardcoded
* offsets used in asm. */
int64_t user_specified_pts; ///< last non-zero pts from AVFrame which was passed into avcodec_encode_video2() int64_t user_specified_pts; ///< last non-zero pts from AVFrame which was passed into avcodec_encode_video2()
/** /**
* pts difference between the first and second input frame, used for * pts difference between the first and second input frame, used for
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment