diff options
author | Anton Khirnov <anton@khirnov.net> | 2013-12-05 21:14:40 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2014-04-29 14:49:42 +0200 |
commit | 6a13505c069890cb0e2a07e29fd819a0cf2e73c1 (patch) | |
tree | 930c490ad7036c228a357fbf11e5c301bffc7d1c /libavcodec | |
parent | 5a70a783f04919514efec7751d710b64d8975fd7 (diff) | |
download | ffmpeg-6a13505c069890cb0e2a07e29fd819a0cf2e73c1.tar.gz |
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.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/arm/asm-offsets.h | 12 | ||||
-rw-r--r-- | libavcodec/mpegvideo.h | 29 |
2 files changed, 21 insertions, 20 deletions
diff --git a/libavcodec/arm/asm-offsets.h b/libavcodec/arm/asm-offsets.h index fdc33ce41a..0ea2f04e4a 100644 --- a/libavcodec/arm/asm-offsets.h +++ b/libavcodec/arm/asm-offsets.h @@ -22,11 +22,11 @@ #define AVCODEC_ARM_ASM_OFFSETS_H /* MpegEncContext */ -#define Y_DC_SCALE 0xa8 -#define C_DC_SCALE 0xac -#define AC_PRED 0xb0 -#define BLOCK_LAST_INDEX 0xb4 -#define H263_AIC 0xe4 -#define INTER_SCANTAB_RASTER_END 0x12c +#define Y_DC_SCALE 0x04 +#define C_DC_SCALE 0x08 +#define AC_PRED 0x0c +#define BLOCK_LAST_INDEX 0x10 +#define H263_AIC 0x40 +#define INTER_SCANTAB_RASTER_END 0x88 #endif /* AVCODEC_ARM_ASM_OFFSETS_H */ diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index e1ee40f808..a879187955 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -197,6 +197,21 @@ typedef struct MotionEstContext{ */ typedef struct MpegEncContext { 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; /* the following parameters must be initialized before encoding */ int width, height;///< picture size. must be a multiple of 16 @@ -243,20 +258,6 @@ typedef struct MpegEncContext { Picture **input_picture; ///< next pictures on display order 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() /** * pts difference between the first and second input frame, used for |