X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=common%2Fcommon.h;h=53a6ff03c0b834f592867fbcb348e3a8e8a89649;hb=8ecdeb2709b4b7095237330e68e9a76ea8060a2f;hp=39ad5cb1527d7d674aa16efce7e2dd14bc2736da;hpb=6371c3a527a337c7521912990c89d0474288e105;p=x264 diff --git a/common/common.h b/common/common.h index 39ad5cb1..53a6ff03 100644 --- a/common/common.h +++ b/common/common.h @@ -40,6 +40,7 @@ #define IS_DISPOSABLE(type) ( type == X264_TYPE_B ) #define FIX8(f) ((int)(f*(1<<8)+.5)) #define ALIGN(x,a) (((x)+((a)-1))&~((a)-1)) +#define ARRAY_ELEMS(a) ((sizeof(a))/(sizeof(a[0]))) #define CHECKED_MALLOC( var, size )\ do {\ @@ -53,6 +54,8 @@ do {\ memset( var, 0, size );\ } while( 0 ) +#define ARRAY_SIZE(array) (sizeof(array)/sizeof(array[0])) + #define X264_BFRAME_MAX 16 #define X264_REF_MAX 16 #define X264_THREAD_MAX 128 @@ -93,6 +96,10 @@ do {\ #include #include +#if HAVE_OPENCL +#include "opencl.h" +#endif + #if HAVE_INTERLACED # define MB_INTERLACED h->mb.b_interlaced # define SLICE_MBAFF h->sh.b_mbaff @@ -202,6 +209,7 @@ static const uint8_t x264_scan8[16*3 + 3] = }; #include "x264.h" +#include "cabac.h" #include "bitstream.h" #include "set.h" #include "predict.h" @@ -209,7 +217,6 @@ static const uint8_t x264_scan8[16*3 + 3] = #include "mc.h" #include "frame.h" #include "dct.h" -#include "cabac.h" #include "quant.h" #include "cpu.h" #include "threadpool.h" @@ -603,11 +610,11 @@ struct x264_t /* Current MB DCT coeffs */ struct { - ALIGNED_16( dctcoef luma16x16_dc[3][16] ); + ALIGNED_N( dctcoef luma16x16_dc[3][16] ); ALIGNED_16( dctcoef chroma_dc[2][8] ); // FIXME share memory? - ALIGNED_16( dctcoef luma8x8[12][64] ); - ALIGNED_16( dctcoef luma4x4[16*3][16] ); + ALIGNED_N( dctcoef luma8x8[12][64] ); + ALIGNED_N( dctcoef luma4x4[16*3][16] ); } dct; /* MB table and cache for current frame/mb */ @@ -746,7 +753,7 @@ struct x264_t #define FENC_STRIDE 16 #define FDEC_STRIDE 32 ALIGNED_16( pixel fenc_buf[48*FENC_STRIDE] ); - ALIGNED_16( pixel fdec_buf[52*FDEC_STRIDE] ); + ALIGNED_N( pixel fdec_buf[52*FDEC_STRIDE] ); /* i4x4 and i8x8 backup data, for skipping the encode stage when possible */ ALIGNED_16( pixel i4x4_fdec_buf[16*16] ); @@ -935,6 +942,10 @@ struct x264_t struct visualize_t *visualize; #endif x264_lookahead_t *lookahead; + +#if HAVE_OPENCL + x264_opencl_t opencl; +#endif }; // included at the end because it needs x264_t