[FFmpeg-cvslog] mpegvideo: move the MpegEncContext fields used from arm asm to the beginning

Anton Khirnov git at videolan.org
Wed Apr 30 00:29:48 CEST 2014


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Thu Dec  5 21:14:40 2013 +0100| [6a13505c069890cb0e2a07e29fd819a0cf2e73c1] | committer: 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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6a13505c069890cb0e2a07e29fd819a0cf2e73c1
---

 libavcodec/arm/asm-offsets.h |   12 ++++++------
 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 fdc33ce..0ea2f04 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 e1ee40f..a879187 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



More information about the ffmpeg-cvslog mailing list