swscale: Remove disabled code.
This commit is contained in:
parent
d6e0729b24
commit
06b5facd4b
@ -447,159 +447,7 @@ static int altivec_##name (SwsContext *c, \
|
||||
#define out_bgr24(a,b,c,ptr) vec_mstbgr24(a,b,c,ptr)
|
||||
|
||||
DEFCSP420_CVT (yuv2_abgr, out_abgr)
|
||||
#if 1
|
||||
DEFCSP420_CVT (yuv2_bgra, out_bgra)
|
||||
#else
|
||||
static int altivec_yuv2_bgra32 (SwsContext *c,
|
||||
unsigned char **in, int *instrides,
|
||||
int srcSliceY, int srcSliceH,
|
||||
unsigned char **oplanes, int *outstrides)
|
||||
{
|
||||
int w = c->srcW;
|
||||
int h = srcSliceH;
|
||||
int i,j;
|
||||
int instrides_scl[3];
|
||||
vector unsigned char y0,y1;
|
||||
|
||||
vector signed char u,v;
|
||||
|
||||
vector signed short Y0,Y1,Y2,Y3;
|
||||
vector signed short U,V;
|
||||
vector signed short vx,ux,uvx;
|
||||
vector signed short vx0,ux0,uvx0;
|
||||
vector signed short vx1,ux1,uvx1;
|
||||
vector signed short R0,G0,B0;
|
||||
vector signed short R1,G1,B1;
|
||||
vector unsigned char R,G,B;
|
||||
|
||||
vector unsigned char *uivP, *vivP;
|
||||
vector unsigned char align_perm;
|
||||
|
||||
vector signed short
|
||||
lCY = c->CY,
|
||||
lOY = c->OY,
|
||||
lCRV = c->CRV,
|
||||
lCBU = c->CBU,
|
||||
lCGU = c->CGU,
|
||||
lCGV = c->CGV;
|
||||
|
||||
vector unsigned short lCSHIFT = c->CSHIFT;
|
||||
|
||||
ubyte *y1i = in[0];
|
||||
ubyte *y2i = in[0]+w;
|
||||
ubyte *ui = in[1];
|
||||
ubyte *vi = in[2];
|
||||
|
||||
vector unsigned char *oute
|
||||
= (vector unsigned char *)
|
||||
(oplanes[0]+srcSliceY*outstrides[0]);
|
||||
vector unsigned char *outo
|
||||
= (vector unsigned char *)
|
||||
(oplanes[0]+srcSliceY*outstrides[0]+outstrides[0]);
|
||||
|
||||
|
||||
instrides_scl[0] = instrides[0];
|
||||
instrides_scl[1] = instrides[1]-w/2; /* the loop moves ui by w/2 */
|
||||
instrides_scl[2] = instrides[2]-w/2; /* the loop moves vi by w/2 */
|
||||
|
||||
|
||||
for (i=0;i<h/2;i++) {
|
||||
vec_dstst (outo, (0x02000002|(((w*3+32)/32)<<16)), 0);
|
||||
vec_dstst (oute, (0x02000002|(((w*3+32)/32)<<16)), 1);
|
||||
|
||||
for (j=0;j<w/16;j++) {
|
||||
|
||||
y0 = vec_ldl (0,y1i);
|
||||
y1 = vec_ldl (0,y2i);
|
||||
uivP = (vector unsigned char *)ui;
|
||||
vivP = (vector unsigned char *)vi;
|
||||
|
||||
align_perm = vec_lvsl (0, ui);
|
||||
u = (vector signed char)vec_perm (uivP[0], uivP[1], align_perm);
|
||||
|
||||
align_perm = vec_lvsl (0, vi);
|
||||
v = (vector signed char)vec_perm (vivP[0], vivP[1], align_perm);
|
||||
u = (vector signed char)
|
||||
vec_sub (u,(vector signed char)
|
||||
vec_splat((vector signed char){128},0));
|
||||
|
||||
v = (vector signed char)
|
||||
vec_sub (v, (vector signed char)
|
||||
vec_splat((vector signed char){128},0));
|
||||
|
||||
U = vec_unpackh (u);
|
||||
V = vec_unpackh (v);
|
||||
|
||||
|
||||
Y0 = vec_unh (y0);
|
||||
Y1 = vec_unl (y0);
|
||||
Y2 = vec_unh (y1);
|
||||
Y3 = vec_unl (y1);
|
||||
|
||||
Y0 = vec_mradds (Y0, lCY, lOY);
|
||||
Y1 = vec_mradds (Y1, lCY, lOY);
|
||||
Y2 = vec_mradds (Y2, lCY, lOY);
|
||||
Y3 = vec_mradds (Y3, lCY, lOY);
|
||||
|
||||
/* ux = (CBU*(u<<CSHIFT)+0x4000)>>15 */
|
||||
ux = vec_sl (U, lCSHIFT);
|
||||
ux = vec_mradds (ux, lCBU, (vector signed short){0});
|
||||
ux0 = vec_mergeh (ux,ux);
|
||||
ux1 = vec_mergel (ux,ux);
|
||||
|
||||
/* vx = (CRV*(v<<CSHIFT)+0x4000)>>15; */
|
||||
vx = vec_sl (V, lCSHIFT);
|
||||
vx = vec_mradds (vx, lCRV, (vector signed short){0});
|
||||
vx0 = vec_mergeh (vx,vx);
|
||||
vx1 = vec_mergel (vx,vx);
|
||||
/* uvx = ((CGU*u) + (CGV*v))>>15 */
|
||||
uvx = vec_mradds (U, lCGU, (vector signed short){0});
|
||||
uvx = vec_mradds (V, lCGV, uvx);
|
||||
uvx0 = vec_mergeh (uvx,uvx);
|
||||
uvx1 = vec_mergel (uvx,uvx);
|
||||
R0 = vec_add (Y0,vx0);
|
||||
G0 = vec_add (Y0,uvx0);
|
||||
B0 = vec_add (Y0,ux0);
|
||||
R1 = vec_add (Y1,vx1);
|
||||
G1 = vec_add (Y1,uvx1);
|
||||
B1 = vec_add (Y1,ux1);
|
||||
R = vec_packclp (R0,R1);
|
||||
G = vec_packclp (G0,G1);
|
||||
B = vec_packclp (B0,B1);
|
||||
|
||||
out_argb(R,G,B,oute);
|
||||
R0 = vec_add (Y2,vx0);
|
||||
G0 = vec_add (Y2,uvx0);
|
||||
B0 = vec_add (Y2,ux0);
|
||||
R1 = vec_add (Y3,vx1);
|
||||
G1 = vec_add (Y3,uvx1);
|
||||
B1 = vec_add (Y3,ux1);
|
||||
R = vec_packclp (R0,R1);
|
||||
G = vec_packclp (G0,G1);
|
||||
B = vec_packclp (B0,B1);
|
||||
|
||||
out_argb(R,G,B,outo);
|
||||
y1i += 16;
|
||||
y2i += 16;
|
||||
ui += 8;
|
||||
vi += 8;
|
||||
|
||||
}
|
||||
|
||||
outo += (outstrides[0])>>4;
|
||||
oute += (outstrides[0])>>4;
|
||||
|
||||
ui += instrides_scl[1];
|
||||
vi += instrides_scl[2];
|
||||
y1i += instrides_scl[0];
|
||||
y2i += instrides_scl[0];
|
||||
}
|
||||
return srcSliceH;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
DEFCSP420_CVT (yuv2_rgba, out_rgba)
|
||||
DEFCSP420_CVT (yuv2_argb, out_argb)
|
||||
DEFCSP420_CVT (yuv2_rgb24, out_rgb24)
|
||||
|
@ -574,7 +574,6 @@ static inline void planar2x_c(const uint8_t *src, uint8_t *dst, int srcWidth,
|
||||
}
|
||||
|
||||
// last line
|
||||
#if 1
|
||||
dst[0]= src[0];
|
||||
|
||||
for (x=0; x<srcWidth-1; x++) {
|
||||
@ -582,12 +581,6 @@ static inline void planar2x_c(const uint8_t *src, uint8_t *dst, int srcWidth,
|
||||
dst[2*x+2]= ( src[x] + 3*src[x+1])>>2;
|
||||
}
|
||||
dst[2*srcWidth-1]= src[srcWidth-1];
|
||||
#else
|
||||
for (x=0; x<srcWidth; x++) {
|
||||
dst[2*x+0]=
|
||||
dst[2*x+1]= src[x];
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -366,28 +366,6 @@ YUV2RGBFUNC(yuv2rgb_c_16, uint16_t, 0)
|
||||
PUTRGB(dst_1,py_1,3);
|
||||
CLOSEYUV2RGBFUNC(8)
|
||||
|
||||
#if 0 // Currently unused
|
||||
// This is exactly the same code as yuv2rgb_c_32 except for the types of
|
||||
// r, g, b, dst_1, dst_2
|
||||
YUV2RGBFUNC(yuv2rgb_c_8, uint8_t, 0)
|
||||
LOADCHROMA(0);
|
||||
PUTRGB(dst_1,py_1,0);
|
||||
PUTRGB(dst_2,py_2,0);
|
||||
|
||||
LOADCHROMA(1);
|
||||
PUTRGB(dst_2,py_2,1);
|
||||
PUTRGB(dst_1,py_1,1);
|
||||
|
||||
LOADCHROMA(2);
|
||||
PUTRGB(dst_1,py_1,2);
|
||||
PUTRGB(dst_2,py_2,2);
|
||||
|
||||
LOADCHROMA(3);
|
||||
PUTRGB(dst_2,py_2,3);
|
||||
PUTRGB(dst_1,py_1,3);
|
||||
CLOSEYUV2RGBFUNC(8)
|
||||
#endif
|
||||
|
||||
// r, g, b, dst_1, dst_2
|
||||
YUV2RGBFUNC(yuv2rgb_c_12_ordered_dither, uint16_t, 0)
|
||||
const uint8_t *d16 = dither_4x4_16[y&3];
|
||||
@ -441,36 +419,6 @@ YUV2RGBFUNC(yuv2rgb_c_8_ordered_dither, uint8_t, 0)
|
||||
PUTRGB8(dst_1,py_1,3,6);
|
||||
CLOSEYUV2RGBFUNC(8)
|
||||
|
||||
#if 0 // Currently unused
|
||||
// This is exactly the same code as yuv2rgb_c_32 except for the types of
|
||||
// r, g, b, dst_1, dst_2
|
||||
YUV2RGBFUNC(yuv2rgb_c_4, uint8_t, 0)
|
||||
int acc;
|
||||
#define PUTRGB4(dst,src,i) \
|
||||
Y = src[2*i]; \
|
||||
acc = r[Y] + g[Y] + b[Y]; \
|
||||
Y = src[2*i+1]; \
|
||||
acc |= (r[Y] + g[Y] + b[Y])<<4; \
|
||||
dst[i] = acc;
|
||||
|
||||
LOADCHROMA(0);
|
||||
PUTRGB4(dst_1,py_1,0);
|
||||
PUTRGB4(dst_2,py_2,0);
|
||||
|
||||
LOADCHROMA(1);
|
||||
PUTRGB4(dst_2,py_2,1);
|
||||
PUTRGB4(dst_1,py_1,1);
|
||||
|
||||
LOADCHROMA(2);
|
||||
PUTRGB4(dst_1,py_1,2);
|
||||
PUTRGB4(dst_2,py_2,2);
|
||||
|
||||
LOADCHROMA(3);
|
||||
PUTRGB4(dst_2,py_2,3);
|
||||
PUTRGB4(dst_1,py_1,3);
|
||||
CLOSEYUV2RGBFUNC(4)
|
||||
#endif
|
||||
|
||||
YUV2RGBFUNC(yuv2rgb_c_4_ordered_dither, uint8_t, 0)
|
||||
const uint8_t *d64 = dither_8x8_73[y&7];
|
||||
const uint8_t *d128 = dither_8x8_220[y&7];
|
||||
@ -500,28 +448,6 @@ YUV2RGBFUNC(yuv2rgb_c_4_ordered_dither, uint8_t, 0)
|
||||
PUTRGB4D(dst_1,py_1,3,6);
|
||||
CLOSEYUV2RGBFUNC(4)
|
||||
|
||||
#if 0 // Currently unused
|
||||
// This is exactly the same code as yuv2rgb_c_32 except for the types of
|
||||
// r, g, b, dst_1, dst_2
|
||||
YUV2RGBFUNC(yuv2rgb_c_4b, uint8_t, 0)
|
||||
LOADCHROMA(0);
|
||||
PUTRGB(dst_1,py_1,0);
|
||||
PUTRGB(dst_2,py_2,0);
|
||||
|
||||
LOADCHROMA(1);
|
||||
PUTRGB(dst_2,py_2,1);
|
||||
PUTRGB(dst_1,py_1,1);
|
||||
|
||||
LOADCHROMA(2);
|
||||
PUTRGB(dst_1,py_1,2);
|
||||
PUTRGB(dst_2,py_2,2);
|
||||
|
||||
LOADCHROMA(3);
|
||||
PUTRGB(dst_2,py_2,3);
|
||||
PUTRGB(dst_1,py_1,3);
|
||||
CLOSEYUV2RGBFUNC(8)
|
||||
#endif
|
||||
|
||||
YUV2RGBFUNC(yuv2rgb_c_4b_ordered_dither, uint8_t, 0)
|
||||
const uint8_t *d64 = dither_8x8_73[y&7];
|
||||
const uint8_t *d128 = dither_8x8_220[y&7];
|
||||
|
Loading…
x
Reference in New Issue
Block a user