[SCM] libav/experimental: mpegvideo: move the MpegEncContext fields used from arm asm to the beginning

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Aug 10 16:03:00 UTC 2014


The following commit has been merged in the experimental branch:
commit 6a13505c069890cb0e2a07e29fd819a0cf2e73c1
Author: Anton Khirnov <anton at khirnov.net>
Date:   Thu Dec 5 21:14:40 2013 +0100

    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.

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

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list