Commit aec42ebc authored by James Almer's avatar James Almer

Merge commit 'f81be06c'

* commit 'f81be06c':
  cavs: Change type of stride parameters to ptrdiff_t
Merged-by: 's avatarJames Almer <jamrial@gmail.com>
parents 4e4dfcac f81be06c
...@@ -256,7 +256,7 @@ void ff_cavs_load_intra_pred_chroma(AVSContext *h) ...@@ -256,7 +256,7 @@ void ff_cavs_load_intra_pred_chroma(AVSContext *h)
} }
} }
static void intra_pred_vert(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_vert(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int y; int y;
uint64_t a = AV_RN64(&top[1]); uint64_t a = AV_RN64(&top[1]);
...@@ -264,7 +264,7 @@ static void intra_pred_vert(uint8_t *d, uint8_t *top, uint8_t *left, int stride) ...@@ -264,7 +264,7 @@ static void intra_pred_vert(uint8_t *d, uint8_t *top, uint8_t *left, int stride)
*((uint64_t *)(d + y * stride)) = a; *((uint64_t *)(d + y * stride)) = a;
} }
static void intra_pred_horiz(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_horiz(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int y; int y;
uint64_t a; uint64_t a;
...@@ -274,7 +274,7 @@ static void intra_pred_horiz(uint8_t *d, uint8_t *top, uint8_t *left, int stride ...@@ -274,7 +274,7 @@ static void intra_pred_horiz(uint8_t *d, uint8_t *top, uint8_t *left, int stride
} }
} }
static void intra_pred_dc_128(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_dc_128(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int y; int y;
uint64_t a = 0x8080808080808080ULL; uint64_t a = 0x8080808080808080ULL;
...@@ -282,7 +282,7 @@ static void intra_pred_dc_128(uint8_t *d, uint8_t *top, uint8_t *left, int strid ...@@ -282,7 +282,7 @@ static void intra_pred_dc_128(uint8_t *d, uint8_t *top, uint8_t *left, int strid
*((uint64_t *)(d + y * stride)) = a; *((uint64_t *)(d + y * stride)) = a;
} }
static void intra_pred_plane(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_plane(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int x, y, ia; int x, y, ia;
int ih = 0; int ih = 0;
...@@ -304,7 +304,7 @@ static void intra_pred_plane(uint8_t *d, uint8_t *top, uint8_t *left, int stride ...@@ -304,7 +304,7 @@ static void intra_pred_plane(uint8_t *d, uint8_t *top, uint8_t *left, int stride
#define LOWPASS(ARRAY, INDEX) \ #define LOWPASS(ARRAY, INDEX) \
((ARRAY[(INDEX) - 1] + 2 * ARRAY[(INDEX)] + ARRAY[(INDEX) + 1] + 2) >> 2) ((ARRAY[(INDEX) - 1] + 2 * ARRAY[(INDEX)] + ARRAY[(INDEX) + 1] + 2) >> 2)
static void intra_pred_lp(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_lp(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int x, y; int x, y;
for (y = 0; y < 8; y++) for (y = 0; y < 8; y++)
...@@ -312,7 +312,7 @@ static void intra_pred_lp(uint8_t *d, uint8_t *top, uint8_t *left, int stride) ...@@ -312,7 +312,7 @@ static void intra_pred_lp(uint8_t *d, uint8_t *top, uint8_t *left, int stride)
d[y * stride + x] = (LOWPASS(top, x + 1) + LOWPASS(left, y + 1)) >> 1; d[y * stride + x] = (LOWPASS(top, x + 1) + LOWPASS(left, y + 1)) >> 1;
} }
static void intra_pred_down_left(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_down_left(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int x, y; int x, y;
for (y = 0; y < 8; y++) for (y = 0; y < 8; y++)
...@@ -320,7 +320,7 @@ static void intra_pred_down_left(uint8_t *d, uint8_t *top, uint8_t *left, int st ...@@ -320,7 +320,7 @@ static void intra_pred_down_left(uint8_t *d, uint8_t *top, uint8_t *left, int st
d[y * stride + x] = (LOWPASS(top, x + y + 2) + LOWPASS(left, x + y + 2)) >> 1; d[y * stride + x] = (LOWPASS(top, x + y + 2) + LOWPASS(left, x + y + 2)) >> 1;
} }
static void intra_pred_down_right(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_down_right(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int x, y; int x, y;
for (y = 0; y < 8; y++) for (y = 0; y < 8; y++)
...@@ -333,7 +333,7 @@ static void intra_pred_down_right(uint8_t *d, uint8_t *top, uint8_t *left, int s ...@@ -333,7 +333,7 @@ static void intra_pred_down_right(uint8_t *d, uint8_t *top, uint8_t *left, int s
d[y * stride + x] = LOWPASS(left, y - x); d[y * stride + x] = LOWPASS(left, y - x);
} }
static void intra_pred_lp_left(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_lp_left(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int x, y; int x, y;
for (y = 0; y < 8; y++) for (y = 0; y < 8; y++)
...@@ -341,7 +341,7 @@ static void intra_pred_lp_left(uint8_t *d, uint8_t *top, uint8_t *left, int stri ...@@ -341,7 +341,7 @@ static void intra_pred_lp_left(uint8_t *d, uint8_t *top, uint8_t *left, int stri
d[y * stride + x] = LOWPASS(left, y + 1); d[y * stride + x] = LOWPASS(left, y + 1);
} }
static void intra_pred_lp_top(uint8_t *d, uint8_t *top, uint8_t *left, int stride) static void intra_pred_lp_top(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride)
{ {
int x, y; int x, y;
for (y = 0; y < 8; y++) for (y = 0; y < 8; y++)
......
...@@ -227,8 +227,8 @@ typedef struct AVSContext { ...@@ -227,8 +227,8 @@ typedef struct AVSContext {
uint8_t intern_border_y[26]; uint8_t intern_border_y[26];
uint8_t topleft_border_y, topleft_border_u, topleft_border_v; uint8_t topleft_border_y, topleft_border_u, topleft_border_v;
void (*intra_pred_l[8])(uint8_t *d,uint8_t *top,uint8_t *left,int stride); void (*intra_pred_l[8])(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride);
void (*intra_pred_c[7])(uint8_t *d,uint8_t *top,uint8_t *left,int stride); void (*intra_pred_c[7])(uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride);
uint8_t *col_type_base; uint8_t *col_type_base;
/* scaling factors for MV prediction */ /* scaling factors for MV prediction */
......
...@@ -545,7 +545,7 @@ static inline int dequant(AVSContext *h, int16_t *level_buf, uint8_t *run_buf, ...@@ -545,7 +545,7 @@ static inline int dequant(AVSContext *h, int16_t *level_buf, uint8_t *run_buf,
*/ */
static int decode_residual_block(AVSContext *h, GetBitContext *gb, static int decode_residual_block(AVSContext *h, GetBitContext *gb,
const struct dec_2dvlc *r, int esc_golomb_order, const struct dec_2dvlc *r, int esc_golomb_order,
int qp, uint8_t *dst, int stride) int qp, uint8_t *dst, ptrdiff_t stride)
{ {
int i, esc_code, level, mask, ret; int i, esc_code, level, mask, ret;
unsigned int level_code, run; unsigned int level_code, run;
......
...@@ -42,7 +42,8 @@ ...@@ -42,7 +42,8 @@
#define Q1 p0_p[ 1*stride] #define Q1 p0_p[ 1*stride]
#define Q2 p0_p[ 2*stride] #define Q2 p0_p[ 2*stride]
static inline void loop_filter_l2(uint8_t *p0_p,int stride,int alpha, int beta) { static inline void loop_filter_l2(uint8_t *p0_p, ptrdiff_t stride, int alpha, int beta)
{
int p0 = P0; int p0 = P0;
int q0 = Q0; int q0 = Q0;
...@@ -62,7 +63,8 @@ static inline void loop_filter_l2(uint8_t *p0_p,int stride,int alpha, int beta) ...@@ -62,7 +63,8 @@ static inline void loop_filter_l2(uint8_t *p0_p,int stride,int alpha, int beta)
} }
} }
static inline void loop_filter_l1(uint8_t *p0_p, int stride, int alpha, int beta, int tc) { static inline void loop_filter_l1(uint8_t *p0_p, ptrdiff_t stride, int alpha, int beta, int tc)
{
int p0 = P0; int p0 = P0;
int q0 = Q0; int q0 = Q0;
...@@ -81,7 +83,8 @@ static inline void loop_filter_l1(uint8_t *p0_p, int stride, int alpha, int beta ...@@ -81,7 +83,8 @@ static inline void loop_filter_l1(uint8_t *p0_p, int stride, int alpha, int beta
} }
} }
static inline void loop_filter_c2(uint8_t *p0_p,int stride,int alpha, int beta) { static inline void loop_filter_c2(uint8_t *p0_p, ptrdiff_t stride, int alpha, int beta)
{
int p0 = P0; int p0 = P0;
int q0 = Q0; int q0 = Q0;
...@@ -99,8 +102,9 @@ static inline void loop_filter_c2(uint8_t *p0_p,int stride,int alpha, int beta) ...@@ -99,8 +102,9 @@ static inline void loop_filter_c2(uint8_t *p0_p,int stride,int alpha, int beta)
} }
} }
static inline void loop_filter_c1(uint8_t *p0_p,int stride,int alpha, int beta, static inline void loop_filter_c1(uint8_t *p0_p, ptrdiff_t stride, int alpha, int beta,
int tc) { int tc)
{
if(abs(P0-Q0)<alpha && abs(P1-P0)<beta && abs(Q1-Q0)<beta) { if(abs(P0-Q0)<alpha && abs(P1-P0)<beta && abs(Q1-Q0)<beta) {
int delta = av_clip(((Q0-P0)*3+P1-Q1+4)>>3, -tc, tc); int delta = av_clip(((Q0-P0)*3+P1-Q1+4)>>3, -tc, tc);
P0 = av_clip_uint8(P0+delta); P0 = av_clip_uint8(P0+delta);
...@@ -115,8 +119,9 @@ static inline void loop_filter_c1(uint8_t *p0_p,int stride,int alpha, int beta, ...@@ -115,8 +119,9 @@ static inline void loop_filter_c1(uint8_t *p0_p,int stride,int alpha, int beta,
#undef Q1 #undef Q1
#undef Q2 #undef Q2
static void cavs_filter_lv_c(uint8_t *d, int stride, int alpha, int beta, int tc, static void cavs_filter_lv_c(uint8_t *d, ptrdiff_t stride, int alpha, int beta, int tc,
int bs1, int bs2) { int bs1, int bs2)
{
int i; int i;
if(bs1==2) if(bs1==2)
for(i=0;i<16;i++) for(i=0;i<16;i++)
...@@ -131,8 +136,9 @@ static void cavs_filter_lv_c(uint8_t *d, int stride, int alpha, int beta, int tc ...@@ -131,8 +136,9 @@ static void cavs_filter_lv_c(uint8_t *d, int stride, int alpha, int beta, int tc
} }
} }
static void cavs_filter_lh_c(uint8_t *d, int stride, int alpha, int beta, int tc, static void cavs_filter_lh_c(uint8_t *d, ptrdiff_t stride, int alpha, int beta, int tc,
int bs1, int bs2) { int bs1, int bs2)
{
int i; int i;
if(bs1==2) if(bs1==2)
for(i=0;i<16;i++) for(i=0;i<16;i++)
...@@ -147,8 +153,9 @@ static void cavs_filter_lh_c(uint8_t *d, int stride, int alpha, int beta, int tc ...@@ -147,8 +153,9 @@ static void cavs_filter_lh_c(uint8_t *d, int stride, int alpha, int beta, int tc
} }
} }
static void cavs_filter_cv_c(uint8_t *d, int stride, int alpha, int beta, int tc, static void cavs_filter_cv_c(uint8_t *d, ptrdiff_t stride, int alpha, int beta, int tc,
int bs1, int bs2) { int bs1, int bs2)
{
int i; int i;
if(bs1==2) if(bs1==2)
for(i=0;i<8;i++) for(i=0;i<8;i++)
...@@ -163,8 +170,9 @@ static void cavs_filter_cv_c(uint8_t *d, int stride, int alpha, int beta, int tc ...@@ -163,8 +170,9 @@ static void cavs_filter_cv_c(uint8_t *d, int stride, int alpha, int beta, int tc
} }
} }
static void cavs_filter_ch_c(uint8_t *d, int stride, int alpha, int beta, int tc, static void cavs_filter_ch_c(uint8_t *d, ptrdiff_t stride, int alpha, int beta, int tc,
int bs1, int bs2) { int bs1, int bs2)
{
int i; int i;
if(bs1==2) if(bs1==2)
for(i=0;i<8;i++) for(i=0;i<8;i++)
...@@ -185,7 +193,8 @@ static void cavs_filter_ch_c(uint8_t *d, int stride, int alpha, int beta, int tc ...@@ -185,7 +193,8 @@ static void cavs_filter_ch_c(uint8_t *d, int stride, int alpha, int beta, int tc
* *
****************************************************************************/ ****************************************************************************/
static void cavs_idct8_add_c(uint8_t *dst, int16_t *block, int stride) { static void cavs_idct8_add_c(uint8_t *dst, int16_t *block, ptrdiff_t stride)
{
int i; int i;
int16_t (*src)[8] = (int16_t(*)[8])block; int16_t (*src)[8] = (int16_t(*)[8])block;
...@@ -260,7 +269,8 @@ static void cavs_idct8_add_c(uint8_t *dst, int16_t *block, int stride) { ...@@ -260,7 +269,8 @@ static void cavs_idct8_add_c(uint8_t *dst, int16_t *block, int stride) {
****************************************************************************/ ****************************************************************************/
#define CAVS_SUBPIX(OPNAME, OP, NAME, A, B, C, D, E, F) \ #define CAVS_SUBPIX(OPNAME, OP, NAME, A, B, C, D, E, F) \
static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
const int h=8;\ const int h=8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\ const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
int i;\ int i;\
...@@ -279,7 +289,8 @@ static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, in ...@@ -279,7 +289,8 @@ static void OPNAME ## cavs_filt8_h_ ## NAME(uint8_t *dst, const uint8_t *src, in
}\ }\
}\ }\
\ \
static void OPNAME ## cavs_filt8_v_ ## NAME(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_filt8_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
const int w=8;\ const int w=8;\
const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\ const uint8_t *cm = ff_crop_tab + MAX_NEG_CROP;\
int i;\ int i;\
...@@ -311,7 +322,8 @@ static void OPNAME ## cavs_filt8_v_ ## NAME(uint8_t *dst, const uint8_t *src, i ...@@ -311,7 +322,8 @@ static void OPNAME ## cavs_filt8_v_ ## NAME(uint8_t *dst, const uint8_t *src, i
}\ }\
}\ }\
\ \
static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_filt8_v_ ## NAME(dst , src , dstStride, srcStride);\ OPNAME ## cavs_filt8_v_ ## NAME(dst , src , dstStride, srcStride);\
OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\ OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\ src += 8*srcStride;\
...@@ -320,7 +332,8 @@ static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, i ...@@ -320,7 +332,8 @@ static void OPNAME ## cavs_filt16_v_ ## NAME(uint8_t *dst, const uint8_t *src, i
OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\ OPNAME ## cavs_filt8_v_ ## NAME(dst+8, src+8, dstStride, srcStride);\
}\ }\
\ \
static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_filt8_h_ ## NAME(dst , src , dstStride, srcStride);\ OPNAME ## cavs_filt8_h_ ## NAME(dst , src , dstStride, srcStride);\
OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\ OPNAME ## cavs_filt8_h_ ## NAME(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\ src += 8*srcStride;\
...@@ -330,7 +343,8 @@ static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, i ...@@ -330,7 +343,8 @@ static void OPNAME ## cavs_filt16_h_ ## NAME(uint8_t *dst, const uint8_t *src, i
}\ }\
#define CAVS_SUBPIX_HV(OPNAME, OP, NAME, AH, BH, CH, DH, EH, FH, AV, BV, CV, DV, EV, FV, FULL) \ #define CAVS_SUBPIX_HV(OPNAME, OP, NAME, AH, BH, CH, DH, EH, FH, AV, BV, CV, DV, EV, FV, FULL) \
static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dstStride, int srcStride){\ static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
int16_t temp[8*(8+5)];\ int16_t temp[8*(8+5)];\
int16_t *tmp = temp;\ int16_t *tmp = temp;\
const int h=8;\ const int h=8;\
...@@ -411,7 +425,8 @@ static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, ...@@ -411,7 +425,8 @@ static void OPNAME ## cavs_filt8_hv_ ## NAME(uint8_t *dst, const uint8_t *src1,
}\ }\
}\ }\
\ \
static void OPNAME ## cavs_filt16_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dstStride, int srcStride){ \ static void OPNAME ## cavs_filt16_hv_ ## NAME(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_filt8_hv_ ## NAME(dst , src1, src2 , dstStride, srcStride); \ OPNAME ## cavs_filt8_hv_ ## NAME(dst , src1, src2 , dstStride, srcStride); \
OPNAME ## cavs_filt8_hv_ ## NAME(dst+8, src1+8, src2+8, dstStride, srcStride); \ OPNAME ## cavs_filt8_hv_ ## NAME(dst+8, src1+8, src2+8, dstStride, srcStride); \
src1 += 8*srcStride;\ src1 += 8*srcStride;\
......
...@@ -30,11 +30,11 @@ ...@@ -30,11 +30,11 @@
typedef struct CAVSDSPContext { typedef struct CAVSDSPContext {
qpel_mc_func put_cavs_qpel_pixels_tab[2][16]; qpel_mc_func put_cavs_qpel_pixels_tab[2][16];
qpel_mc_func avg_cavs_qpel_pixels_tab[2][16]; qpel_mc_func avg_cavs_qpel_pixels_tab[2][16];
void (*cavs_filter_lv)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2); void (*cavs_filter_lv)(uint8_t *pix, ptrdiff_t stride, int alpha, int beta, int tc, int bs1, int bs2);
void (*cavs_filter_lh)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2); void (*cavs_filter_lh)(uint8_t *pix, ptrdiff_t stride, int alpha, int beta, int tc, int bs1, int bs2);
void (*cavs_filter_cv)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2); void (*cavs_filter_cv)(uint8_t *pix, ptrdiff_t stride, int alpha, int beta, int tc, int bs1, int bs2);
void (*cavs_filter_ch)(uint8_t *pix, int stride, int alpha, int beta, int tc, int bs1, int bs2); void (*cavs_filter_ch)(uint8_t *pix, ptrdiff_t stride, int alpha, int beta, int tc, int bs1, int bs2);
void (*cavs_idct8_add)(uint8_t *dst, int16_t *block, int stride); void (*cavs_idct8_add)(uint8_t *dst, int16_t *block, ptrdiff_t stride);
int idct_perm; int idct_perm;
} CAVSDSPContext; } CAVSDSPContext;
......
...@@ -136,7 +136,7 @@ static inline void cavs_idct8_1d(int16_t *block, uint64_t bias) ...@@ -136,7 +136,7 @@ static inline void cavs_idct8_1d(int16_t *block, uint64_t bias)
SBUTTERFLY(a,c,d,dq,q) /* a=aeim d=bfjn */\ SBUTTERFLY(a,c,d,dq,q) /* a=aeim d=bfjn */\
SBUTTERFLY(t,b,c,dq,q) /* t=cgko c=dhlp */ SBUTTERFLY(t,b,c,dq,q) /* t=cgko c=dhlp */
static void cavs_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride) static void cavs_idct8_add_mmx(uint8_t *dst, int16_t *block, ptrdiff_t stride)
{ {
int i; int i;
LOCAL_ALIGNED(16, int16_t, b2, [64]); LOCAL_ALIGNED(16, int16_t, b2, [64]);
...@@ -334,7 +334,8 @@ static void cavs_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride) ...@@ -334,7 +334,8 @@ static void cavs_idct8_add_mmx(uint8_t *dst, int16_t *block, int stride)
} }
#define QPEL_CAVS(OPNAME, OP, MMX)\ #define QPEL_CAVS(OPNAME, OP, MMX)\
static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{\
int h=8;\ int h=8;\
__asm__ volatile(\ __asm__ volatile(\
"pxor %%mm7, %%mm7 \n\t"\ "pxor %%mm7, %%mm7 \n\t"\
...@@ -382,43 +383,53 @@ static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, const uint8_t *src, int ...@@ -382,43 +383,53 @@ static void OPNAME ## cavs_qpel8_h_ ## MMX(uint8_t *dst, const uint8_t *src, int
);\ );\
}\ }\
\ \
static inline void OPNAME ## cavs_qpel8or16_v1_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h){\ static inline void OPNAME ## cavs_qpel8or16_v1_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)\
{ \
QPEL_CAVSVNUM(QPEL_CAVSV1,OP,ff_pw_64,ff_pw_96,ff_pw_42) \ QPEL_CAVSVNUM(QPEL_CAVSV1,OP,ff_pw_64,ff_pw_96,ff_pw_42) \
}\ }\
\ \
static inline void OPNAME ## cavs_qpel8or16_v2_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h){\ static inline void OPNAME ## cavs_qpel8or16_v2_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)\
{ \
QPEL_CAVSVNUM(QPEL_CAVSV2,OP,ff_pw_4,ff_pw_5,ff_pw_42) \ QPEL_CAVSVNUM(QPEL_CAVSV2,OP,ff_pw_4,ff_pw_5,ff_pw_42) \
}\ }\
\ \
static inline void OPNAME ## cavs_qpel8or16_v3_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h){\ static inline void OPNAME ## cavs_qpel8or16_v3_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride, int h)\
{ \
QPEL_CAVSVNUM(QPEL_CAVSV3,OP,ff_pw_64,ff_pw_96,ff_pw_42) \ QPEL_CAVSVNUM(QPEL_CAVSV3,OP,ff_pw_64,ff_pw_96,ff_pw_42) \
}\ }\
\ \
static void OPNAME ## cavs_qpel8_v1_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_qpel8_v1_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst , src , dstStride, srcStride, 8);\ OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst , src , dstStride, srcStride, 8);\
}\ }\
static void OPNAME ## cavs_qpel16_v1_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_qpel16_v1_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst , src , dstStride, srcStride, 16);\ OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\ OPNAME ## cavs_qpel8or16_v1_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
}\ }\
\ \
static void OPNAME ## cavs_qpel8_v2_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_qpel8_v2_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst , src , dstStride, srcStride, 8);\ OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst , src , dstStride, srcStride, 8);\
}\ }\
static void OPNAME ## cavs_qpel16_v2_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_qpel16_v2_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst , src , dstStride, srcStride, 16);\ OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\ OPNAME ## cavs_qpel8or16_v2_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
}\ }\
\ \
static void OPNAME ## cavs_qpel8_v3_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_qpel8_v3_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst , src , dstStride, srcStride, 8);\ OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst , src , dstStride, srcStride, 8);\
}\ }\
static void OPNAME ## cavs_qpel16_v3_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_qpel16_v3_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst , src , dstStride, srcStride, 16);\ OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst , src , dstStride, srcStride, 16);\
OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\ OPNAME ## cavs_qpel8or16_v3_ ## MMX(dst+8, src+8, dstStride, srcStride, 16);\
}\ }\
\ \
static void OPNAME ## cavs_qpel16_h_ ## MMX(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride){\ static void OPNAME ## cavs_qpel16_h_ ## MMX(uint8_t *dst, const uint8_t *src, ptrdiff_t dstStride, ptrdiff_t srcStride)\
{ \
OPNAME ## cavs_qpel8_h_ ## MMX(dst , src , dstStride, srcStride);\ OPNAME ## cavs_qpel8_h_ ## MMX(dst , src , dstStride, srcStride);\
OPNAME ## cavs_qpel8_h_ ## MMX(dst+8, src+8, dstStride, srcStride);\ OPNAME ## cavs_qpel8_h_ ## MMX(dst+8, src+8, dstStride, srcStride);\
src += 8*srcStride;\ src += 8*srcStride;\
......
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