dsputil: fixup half a dozen bugs with ptrdiff vs int linesize

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-02-06 13:16:31 +01:00
parent ede45c4e1d
commit 0ddca7d416
6 changed files with 12 additions and 10 deletions

View File

@ -170,7 +170,7 @@ DEF_OLD_QPEL(qpel8_mc13_old_c)
DEF_OLD_QPEL(qpel8_mc33_old_c) DEF_OLD_QPEL(qpel8_mc33_old_c)
#define CALL_2X_PIXELS(a, b, n)\ #define CALL_2X_PIXELS(a, b, n)\
static void a(uint8_t *block, const uint8_t *pixels, int line_size, int h){\ static void a(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h){\
b(block , pixels , line_size, h);\ b(block , pixels , line_size, h);\
b(block+n, pixels+n, line_size, h);\ b(block+n, pixels+n, line_size, h);\
} }

View File

@ -361,7 +361,7 @@ static inline void FUNCC(OPNAME ## _pixels4_xy2)(uint8_t *block, const uint8_t *
}\ }\
}\ }\
\ \
static inline void FUNCC(OPNAME ## _pixels8_xy2)(uint8_t *block, const uint8_t *pixels, int line_size, int h)\ static inline void FUNCC(OPNAME ## _pixels8_xy2)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h)\
{\ {\
/* FIXME HIGH BIT DEPTH */\ /* FIXME HIGH BIT DEPTH */\
int j;\ int j;\

View File

@ -20,7 +20,7 @@
*/ */
#define DEF_HPEL(OPNAME, OP) \ #define DEF_HPEL(OPNAME, OP) \
static inline void FUNCC(OPNAME ## _pixels2)(uint8_t *block, const uint8_t *pixels, int line_size, int h){\ static inline void FUNCC(OPNAME ## _pixels2)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h){\
int i;\ int i;\
for(i=0; i<h; i++){\ for(i=0; i<h; i++){\
OP(*((pixel2*)(block )), AV_RN2P(pixels ));\ OP(*((pixel2*)(block )), AV_RN2P(pixels ));\
@ -28,7 +28,7 @@ static inline void FUNCC(OPNAME ## _pixels2)(uint8_t *block, const uint8_t *pixe
block +=line_size;\ block +=line_size;\
}\ }\
}\ }\
static inline void FUNCC(OPNAME ## _pixels4)(uint8_t *block, const uint8_t *pixels, int line_size, int h){\ static inline void FUNCC(OPNAME ## _pixels4)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h){\
int i;\ int i;\
for(i=0; i<h; i++){\ for(i=0; i<h; i++){\
OP(*((pixel4*)(block )), AV_RN4P(pixels ));\ OP(*((pixel4*)(block )), AV_RN4P(pixels ));\
@ -36,7 +36,7 @@ static inline void FUNCC(OPNAME ## _pixels4)(uint8_t *block, const uint8_t *pixe
block +=line_size;\ block +=line_size;\
}\ }\
}\ }\
static inline void FUNCC(OPNAME ## _pixels8)(uint8_t *block, const uint8_t *pixels, int line_size, int h){\ static inline void FUNCC(OPNAME ## _pixels8)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h){\
int i;\ int i;\
for(i=0; i<h; i++){\ for(i=0; i<h; i++){\
OP(*((pixel4*)(block )), AV_RN4P(pixels ));\ OP(*((pixel4*)(block )), AV_RN4P(pixels ));\

View File

@ -378,7 +378,7 @@ void ff_snow_pred_block(SnowContext *s, uint8_t *dst, uint8_t *tmp, int stride,
} }
#define mca(dx,dy,b_w)\ #define mca(dx,dy,b_w)\
static void mc_block_hpel ## dx ## dy ## b_w(uint8_t *dst, const uint8_t *src, int stride, int h){\ static void mc_block_hpel ## dx ## dy ## b_w(uint8_t *dst, const uint8_t *src, ptrdiff_t stride, int h){\
av_assert2(h==b_w);\ av_assert2(h==b_w);\
mc_block(NULL, dst, src-(HTAPS_MAX/2-1)-(HTAPS_MAX/2-1)*stride, stride, b_w, b_w, dx, dy);\ mc_block(NULL, dst, src-(HTAPS_MAX/2-1)-(HTAPS_MAX/2-1)*stride, stride, b_w, b_w, dx, dy);\
} }

View File

@ -30,6 +30,8 @@
#include "dsputil.h" #include "dsputil.h"
typedef void (*vc1op_pixels_func)(uint8_t *block/*align width (8 or 16)*/, const uint8_t *pixels/*align 1*/, int line_size, int h);
typedef struct VC1DSPContext { typedef struct VC1DSPContext {
/* vc1 functions */ /* vc1 functions */
void (*vc1_inv_trans_8x8)(int16_t *b); void (*vc1_inv_trans_8x8)(int16_t *b);
@ -54,8 +56,8 @@ typedef struct VC1DSPContext {
/* put 8x8 block with bicubic interpolation and quarterpel precision /* put 8x8 block with bicubic interpolation and quarterpel precision
* last argument is actually round value instead of height * last argument is actually round value instead of height
*/ */
op_pixels_func put_vc1_mspel_pixels_tab[16]; vc1op_pixels_func put_vc1_mspel_pixels_tab[16];
op_pixels_func avg_vc1_mspel_pixels_tab[16]; vc1op_pixels_func avg_vc1_mspel_pixels_tab[16];
/* This is really one func used in VC-1 decoding */ /* This is really one func used in VC-1 decoding */
h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3]; h264_chroma_mc_func put_no_rnd_vc1_chroma_pixels_tab[3];

View File

@ -468,7 +468,7 @@ void ff_add_pixels_clamped_mmx(const int16_t *block, uint8_t *pixels,
} }
static void put_pixels8_mmx(uint8_t *block, const uint8_t *pixels, static void put_pixels8_mmx(uint8_t *block, const uint8_t *pixels,
int line_size, int h) ptrdiff_t line_size, int h)
{ {
__asm__ volatile ( __asm__ volatile (
"lea (%3, %3), %%"REG_a" \n\t" "lea (%3, %3), %%"REG_a" \n\t"
@ -495,7 +495,7 @@ static void put_pixels8_mmx(uint8_t *block, const uint8_t *pixels,
} }
static void put_pixels16_mmx(uint8_t *block, const uint8_t *pixels, static void put_pixels16_mmx(uint8_t *block, const uint8_t *pixels,
int line_size, int h) ptrdiff_t line_size, int h)
{ {
__asm__ volatile ( __asm__ volatile (
"lea (%3, %3), %%"REG_a" \n\t" "lea (%3, %3), %%"REG_a" \n\t"