|
|
|
@ -54,8 +54,9 @@ |
|
|
|
|
|
|
|
|
|
struct SwsContext; |
|
|
|
|
|
|
|
|
|
typedef int (*SwsFunc)(struct SwsContext *context, uint8_t* src[], int srcStride[], int srcSliceY, |
|
|
|
|
int srcSliceH, uint8_t* dst[], int dstStride[]); |
|
|
|
|
typedef int (*SwsFunc)(struct SwsContext *context, uint8_t* src[], |
|
|
|
|
int srcStride[], int srcSliceY, int srcSliceH, |
|
|
|
|
uint8_t* dst[], int dstStride[]); |
|
|
|
|
|
|
|
|
|
/* This struct should be aligned on at least a 32-byte boundary. */ |
|
|
|
|
typedef struct SwsContext{ |
|
|
|
@ -183,7 +184,6 @@ typedef struct SwsContext{ |
|
|
|
|
int32_t alpMmxFilter[4*MAX_FILTER_SIZE]; |
|
|
|
|
|
|
|
|
|
#if HAVE_ALTIVEC |
|
|
|
|
|
|
|
|
|
vector signed short CY; |
|
|
|
|
vector signed short CRV; |
|
|
|
|
vector signed short CBU; |
|
|
|
@ -192,10 +192,8 @@ typedef struct SwsContext{ |
|
|
|
|
vector signed short OY; |
|
|
|
|
vector unsigned short CSHIFT; |
|
|
|
|
vector signed short *vYCoeffsBank, *vCCoeffsBank; |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if ARCH_BFIN |
|
|
|
|
uint32_t oy __attribute__((aligned(4))); |
|
|
|
|
uint32_t oc __attribute__((aligned(4))); |
|
|
|
@ -260,18 +258,23 @@ typedef struct SwsContext{ |
|
|
|
|
const uint8_t *src, int srcW, int xInc); |
|
|
|
|
void (*hcscale_fast)(struct SwsContext *c, |
|
|
|
|
int16_t *dst, int dstWidth, |
|
|
|
|
const uint8_t *src1, const uint8_t *src2, int srcW, int xInc); |
|
|
|
|
const uint8_t *src1, const uint8_t *src2, |
|
|
|
|
int srcW, int xInc); |
|
|
|
|
|
|
|
|
|
void (*hScale)(int16_t *dst, int dstW, const uint8_t *src, int srcW, |
|
|
|
|
int xInc, const int16_t *filter, const int16_t *filterPos, long filterSize); |
|
|
|
|
int xInc, const int16_t *filter, const int16_t *filterPos, |
|
|
|
|
long filterSize); |
|
|
|
|
|
|
|
|
|
} SwsContext; |
|
|
|
|
//FIXME check init (where 0)
|
|
|
|
|
|
|
|
|
|
SwsFunc ff_yuv2rgb_get_func_ptr(SwsContext *c); |
|
|
|
|
int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], int fullRange, int brightness, int contrast, int saturation); |
|
|
|
|
int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], |
|
|
|
|
int fullRange, int brightness, |
|
|
|
|
int contrast, int saturation); |
|
|
|
|
|
|
|
|
|
void ff_yuv2rgb_init_tables_altivec(SwsContext *c, const int inv_table[4], int brightness, int contrast, int saturation); |
|
|
|
|
void ff_yuv2rgb_init_tables_altivec(SwsContext *c, const int inv_table[4], |
|
|
|
|
int brightness, int contrast, int saturation); |
|
|
|
|
SwsFunc ff_yuv2rgb_init_mmx(SwsContext *c); |
|
|
|
|
SwsFunc ff_yuv2rgb_init_vis(SwsContext *c); |
|
|
|
|
SwsFunc ff_yuv2rgb_init_mlib(SwsContext *c); |
|
|
|
|