mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-06-30 04:47:37 +08:00
Indent libswscale:
- Use 4 spaces throughout for indentation; - Fix inconsistent indentation; - Indent function calls and declarations aligning arguments on multiple lines to the column after the opening parentheses; - Align asm code to the column 4 spaces after the call to __asm__(); - Align cases in switch statements to the same column as "switch". Originally committed as revision 29522 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This commit is contained in:
@ -41,17 +41,17 @@ static char *args_parse(int argc, char *argv[])
|
|||||||
|
|
||||||
while ((o = getopt(argc, argv, "m23")) != -1) {
|
while ((o = getopt(argc, argv, "m23")) != -1) {
|
||||||
switch (o) {
|
switch (o) {
|
||||||
case 'm':
|
case 'm':
|
||||||
cpu_caps |= SWS_CPU_CAPS_MMX;
|
cpu_caps |= SWS_CPU_CAPS_MMX;
|
||||||
break;
|
break;
|
||||||
case '2':
|
case '2':
|
||||||
cpu_caps |= SWS_CPU_CAPS_MMX2;
|
cpu_caps |= SWS_CPU_CAPS_MMX2;
|
||||||
break;
|
break;
|
||||||
case '3':
|
case '3':
|
||||||
cpu_caps |= SWS_CPU_CAPS_3DNOW;
|
cpu_caps |= SWS_CPU_CAPS_3DNOW;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
av_log(NULL, AV_LOG_ERROR, "Unknown option %c\n", o);
|
av_log(NULL, AV_LOG_ERROR, "Unknown option %c\n", o);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -855,13 +855,13 @@ ff_yuv2packedX_altivec(SwsContext *c,
|
|||||||
B = vec_packclp (B0,B1);
|
B = vec_packclp (B0,B1);
|
||||||
|
|
||||||
switch(c->dstFormat) {
|
switch(c->dstFormat) {
|
||||||
case PIX_FMT_ABGR: out_abgr (R,G,B,out); break;
|
case PIX_FMT_ABGR: out_abgr (R,G,B,out); break;
|
||||||
case PIX_FMT_BGRA: out_bgra (R,G,B,out); break;
|
case PIX_FMT_BGRA: out_bgra (R,G,B,out); break;
|
||||||
case PIX_FMT_RGBA: out_rgba (R,G,B,out); break;
|
case PIX_FMT_RGBA: out_rgba (R,G,B,out); break;
|
||||||
case PIX_FMT_ARGB: out_argb (R,G,B,out); break;
|
case PIX_FMT_ARGB: out_argb (R,G,B,out); break;
|
||||||
case PIX_FMT_RGB24: out_rgb24 (R,G,B,out); break;
|
case PIX_FMT_RGB24: out_rgb24 (R,G,B,out); break;
|
||||||
case PIX_FMT_BGR24: out_bgr24 (R,G,B,out); break;
|
case PIX_FMT_BGR24: out_bgr24 (R,G,B,out); break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
/* If this is reached, the caller should have called yuv2packedXinC
|
/* If this is reached, the caller should have called yuv2packedXinC
|
||||||
instead. */
|
instead. */
|
||||||
@ -934,17 +934,17 @@ ff_yuv2packedX_altivec(SwsContext *c,
|
|||||||
|
|
||||||
nout = (vector unsigned char *)scratch;
|
nout = (vector unsigned char *)scratch;
|
||||||
switch(c->dstFormat) {
|
switch(c->dstFormat) {
|
||||||
case PIX_FMT_ABGR: out_abgr (R,G,B,nout); break;
|
case PIX_FMT_ABGR: out_abgr (R,G,B,nout); break;
|
||||||
case PIX_FMT_BGRA: out_bgra (R,G,B,nout); break;
|
case PIX_FMT_BGRA: out_bgra (R,G,B,nout); break;
|
||||||
case PIX_FMT_RGBA: out_rgba (R,G,B,nout); break;
|
case PIX_FMT_RGBA: out_rgba (R,G,B,nout); break;
|
||||||
case PIX_FMT_ARGB: out_argb (R,G,B,nout); break;
|
case PIX_FMT_ARGB: out_argb (R,G,B,nout); break;
|
||||||
case PIX_FMT_RGB24: out_rgb24 (R,G,B,nout); break;
|
case PIX_FMT_RGB24: out_rgb24 (R,G,B,nout); break;
|
||||||
case PIX_FMT_BGR24: out_bgr24 (R,G,B,nout); break;
|
case PIX_FMT_BGR24: out_bgr24 (R,G,B,nout); break;
|
||||||
default:
|
default:
|
||||||
/* Unreachable, I think. */
|
/* Unreachable, I think. */
|
||||||
av_log(c, AV_LOG_ERROR, "altivec_yuv2packedX doesn't support %s output\n",
|
av_log(c, AV_LOG_ERROR, "altivec_yuv2packedX doesn't support %s output\n",
|
||||||
sws_format_name(c->dstFormat));
|
sws_format_name(c->dstFormat));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy (&((uint32_t*)dest)[i], scratch, (dstW-i)/4);
|
memcpy (&((uint32_t*)dest)[i], scratch, (dstW-i)/4);
|
||||||
|
@ -88,17 +88,17 @@ void (*yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint8_t *sr
|
|||||||
long srcStride1, long srcStride2,
|
long srcStride1, long srcStride2,
|
||||||
long srcStride3, long dstStride);
|
long srcStride3, long dstStride);
|
||||||
void (*uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
void (*uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
||||||
long width, long height,
|
long width, long height,
|
||||||
long lumStride, long chromStride, long srcStride);
|
long lumStride, long chromStride, long srcStride);
|
||||||
void (*uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
void (*uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
||||||
long width, long height,
|
long width, long height,
|
||||||
long lumStride, long chromStride, long srcStride);
|
long lumStride, long chromStride, long srcStride);
|
||||||
void (*yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
void (*yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
||||||
long width, long height,
|
long width, long height,
|
||||||
long lumStride, long chromStride, long srcStride);
|
long lumStride, long chromStride, long srcStride);
|
||||||
void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
||||||
long width, long height,
|
long width, long height,
|
||||||
long lumStride, long chromStride, long srcStride);
|
long lumStride, long chromStride, long srcStride);
|
||||||
|
|
||||||
|
|
||||||
#if ARCH_X86 && CONFIG_GPL
|
#if ARCH_X86 && CONFIG_GPL
|
||||||
|
@ -144,17 +144,17 @@ extern void (*yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint
|
|||||||
|
|
||||||
|
|
||||||
extern void (*uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
extern void (*uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
||||||
long width, long height,
|
long width, long height,
|
||||||
long lumStride, long chromStride, long srcStride);
|
long lumStride, long chromStride, long srcStride);
|
||||||
extern void (*uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
extern void (*uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
||||||
long width, long height,
|
long width, long height,
|
||||||
long lumStride, long chromStride, long srcStride);
|
long lumStride, long chromStride, long srcStride);
|
||||||
extern void (*yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
extern void (*yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
||||||
long width, long height,
|
long width, long height,
|
||||||
long lumStride, long chromStride, long srcStride);
|
long lumStride, long chromStride, long srcStride);
|
||||||
extern void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
extern void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src,
|
||||||
long width, long height,
|
long width, long height,
|
||||||
long lumStride, long chromStride, long srcStride);
|
long lumStride, long chromStride, long srcStride);
|
||||||
|
|
||||||
void sws_rgb2rgb_init(int flags);
|
void sws_rgb2rgb_init(int flags);
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -83,105 +83,105 @@
|
|||||||
// FIXME: must be changed to set alpha to 255 instead of 0
|
// FIXME: must be changed to set alpha to 255 instead of 0
|
||||||
static int vis_420P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
|
static int vis_420P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t* dst[], int dstStride[]){
|
int srcSliceH, uint8_t* dst[], int dstStride[]){
|
||||||
int y, out1, out2, out3, out4, out5, out6;
|
int y, out1, out2, out3, out4, out5, out6;
|
||||||
|
|
||||||
for(y=0;y < srcSliceH;++y) {
|
for(y=0;y < srcSliceH;++y) {
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
YUV2RGB_INIT
|
YUV2RGB_INIT
|
||||||
"wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */
|
"wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */
|
||||||
"1: \n\t"
|
"1: \n\t"
|
||||||
"ldda [%1] %%asi, %%f2 \n\t"
|
"ldda [%1] %%asi, %%f2 \n\t"
|
||||||
"ldda [%1+2] %%asi, %%f18 \n\t"
|
"ldda [%1+2] %%asi, %%f18 \n\t"
|
||||||
"ldda [%2] %%asi, %%f4 \n\t"
|
"ldda [%2] %%asi, %%f4 \n\t"
|
||||||
"ldda [%2+2] %%asi, %%f20 \n\t"
|
"ldda [%2+2] %%asi, %%f20 \n\t"
|
||||||
"ld [%0], %%f0 \n\t"
|
"ld [%0], %%f0 \n\t"
|
||||||
"ld [%0+4], %%f16 \n\t"
|
"ld [%0+4], %%f16 \n\t"
|
||||||
"fpmerge %%f3, %%f3, %%f2 \n\t"
|
"fpmerge %%f3, %%f3, %%f2 \n\t"
|
||||||
"fpmerge %%f19, %%f19, %%f18 \n\t"
|
"fpmerge %%f19, %%f19, %%f18 \n\t"
|
||||||
"fpmerge %%f5, %%f5, %%f4 \n\t"
|
"fpmerge %%f5, %%f5, %%f4 \n\t"
|
||||||
"fpmerge %%f21, %%f21, %%f20 \n\t"
|
"fpmerge %%f21, %%f21, %%f20 \n\t"
|
||||||
YUV2RGB_KERNEL
|
YUV2RGB_KERNEL
|
||||||
"fzero %%f0 \n\t"
|
"fzero %%f0 \n\t"
|
||||||
"fpmerge %%f4, %%f6, %%f8 \n\t" // r,b,t1
|
"fpmerge %%f4, %%f6, %%f8 \n\t" // r,b,t1
|
||||||
"fpmerge %%f20, %%f22, %%f24 \n\t" // r,b,t1
|
"fpmerge %%f20, %%f22, %%f24 \n\t" // r,b,t1
|
||||||
"fpmerge %%f0, %%f2, %%f10 \n\t" // 0,g,t2
|
"fpmerge %%f0, %%f2, %%f10 \n\t" // 0,g,t2
|
||||||
"fpmerge %%f0, %%f18, %%f26 \n\t" // 0,g,t2
|
"fpmerge %%f0, %%f18, %%f26 \n\t" // 0,g,t2
|
||||||
"fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb
|
"fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb
|
||||||
"fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb
|
"fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb
|
||||||
"fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb
|
"fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb
|
||||||
"fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb
|
"fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb
|
||||||
"std %%f4, [%3] \n\t"
|
"std %%f4, [%3] \n\t"
|
||||||
"std %%f20, [%3+16] \n\t"
|
"std %%f20, [%3+16] \n\t"
|
||||||
"std %%f6, [%3+8] \n\t"
|
"std %%f6, [%3+8] \n\t"
|
||||||
"std %%f22, [%3+24] \n\t"
|
"std %%f22, [%3+24] \n\t"
|
||||||
|
|
||||||
"add %0, 8, %0 \n\t"
|
"add %0, 8, %0 \n\t"
|
||||||
"add %1, 4, %1 \n\t"
|
"add %1, 4, %1 \n\t"
|
||||||
"add %2, 4, %2 \n\t"
|
"add %2, 4, %2 \n\t"
|
||||||
"subcc %4, 8, %4 \n\t"
|
"subcc %4, 8, %4 \n\t"
|
||||||
"bne 1b \n\t"
|
"bne 1b \n\t"
|
||||||
"add %3, 32, %3 \n\t" //delay slot
|
"add %3, 32, %3 \n\t" //delay slot
|
||||||
: "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6)
|
: "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6)
|
||||||
: "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+((y+srcSliceY)>>1)*srcStride[1]),
|
: "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+((y+srcSliceY)>>1)*srcStride[1]),
|
||||||
"2" (src[2]+((y+srcSliceY)>>1)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]),
|
"2" (src[2]+((y+srcSliceY)>>1)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]),
|
||||||
"4" (c->dstW),
|
"4" (c->dstW),
|
||||||
"5" (c->sparc_coeffs)
|
"5" (c->sparc_coeffs)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: must be changed to set alpha to 255 instead of 0
|
// FIXME: must be changed to set alpha to 255 instead of 0
|
||||||
static int vis_422P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
|
static int vis_422P_ARGB32(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
|
||||||
int srcSliceH, uint8_t* dst[], int dstStride[]){
|
int srcSliceH, uint8_t* dst[], int dstStride[]){
|
||||||
int y, out1, out2, out3, out4, out5, out6;
|
int y, out1, out2, out3, out4, out5, out6;
|
||||||
|
|
||||||
for(y=0;y < srcSliceH;++y) {
|
for(y=0;y < srcSliceH;++y) {
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
YUV2RGB_INIT
|
YUV2RGB_INIT
|
||||||
"wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */
|
"wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */
|
||||||
"1: \n\t"
|
"1: \n\t"
|
||||||
"ldda [%1] %%asi, %%f2 \n\t"
|
"ldda [%1] %%asi, %%f2 \n\t"
|
||||||
"ldda [%1+2] %%asi, %%f18 \n\t"
|
"ldda [%1+2] %%asi, %%f18 \n\t"
|
||||||
"ldda [%2] %%asi, %%f4 \n\t"
|
"ldda [%2] %%asi, %%f4 \n\t"
|
||||||
"ldda [%2+2] %%asi, %%f20 \n\t"
|
"ldda [%2+2] %%asi, %%f20 \n\t"
|
||||||
"ld [%0], %%f0 \n\t"
|
"ld [%0], %%f0 \n\t"
|
||||||
"ld [%0+4], %%f16 \n\t"
|
"ld [%0+4], %%f16 \n\t"
|
||||||
"fpmerge %%f3, %%f3, %%f2 \n\t"
|
"fpmerge %%f3, %%f3, %%f2 \n\t"
|
||||||
"fpmerge %%f19, %%f19, %%f18 \n\t"
|
"fpmerge %%f19, %%f19, %%f18 \n\t"
|
||||||
"fpmerge %%f5, %%f5, %%f4 \n\t"
|
"fpmerge %%f5, %%f5, %%f4 \n\t"
|
||||||
"fpmerge %%f21, %%f21, %%f20 \n\t"
|
"fpmerge %%f21, %%f21, %%f20 \n\t"
|
||||||
YUV2RGB_KERNEL
|
YUV2RGB_KERNEL
|
||||||
"fzero %%f0 \n\t"
|
"fzero %%f0 \n\t"
|
||||||
"fpmerge %%f4, %%f6, %%f8 \n\t" // r,b,t1
|
"fpmerge %%f4, %%f6, %%f8 \n\t" // r,b,t1
|
||||||
"fpmerge %%f20, %%f22, %%f24 \n\t" // r,b,t1
|
"fpmerge %%f20, %%f22, %%f24 \n\t" // r,b,t1
|
||||||
"fpmerge %%f0, %%f2, %%f10 \n\t" // 0,g,t2
|
"fpmerge %%f0, %%f2, %%f10 \n\t" // 0,g,t2
|
||||||
"fpmerge %%f0, %%f18, %%f26 \n\t" // 0,g,t2
|
"fpmerge %%f0, %%f18, %%f26 \n\t" // 0,g,t2
|
||||||
"fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb
|
"fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb
|
||||||
"fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb
|
"fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb
|
||||||
"fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb
|
"fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb
|
||||||
"fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb
|
"fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb
|
||||||
"std %%f4, [%3] \n\t"
|
"std %%f4, [%3] \n\t"
|
||||||
"std %%f20, [%3+16] \n\t"
|
"std %%f20, [%3+16] \n\t"
|
||||||
"std %%f6, [%3+8] \n\t"
|
"std %%f6, [%3+8] \n\t"
|
||||||
"std %%f22, [%3+24] \n\t"
|
"std %%f22, [%3+24] \n\t"
|
||||||
|
|
||||||
"add %0, 8, %0 \n\t"
|
"add %0, 8, %0 \n\t"
|
||||||
"add %1, 4, %1 \n\t"
|
"add %1, 4, %1 \n\t"
|
||||||
"add %2, 4, %2 \n\t"
|
"add %2, 4, %2 \n\t"
|
||||||
"subcc %4, 8, %4 \n\t"
|
"subcc %4, 8, %4 \n\t"
|
||||||
"bne 1b \n\t"
|
"bne 1b \n\t"
|
||||||
"add %3, 32, %3 \n\t" //delay slot
|
"add %3, 32, %3 \n\t" //delay slot
|
||||||
: "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6)
|
: "=r" (out1), "=r" (out2), "=r" (out3), "=r" (out4), "=r" (out5), "=r" (out6)
|
||||||
: "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+(y+srcSliceY)*srcStride[1]),
|
: "0" (src[0]+(y+srcSliceY)*srcStride[0]), "1" (src[1]+(y+srcSliceY)*srcStride[1]),
|
||||||
"2" (src[2]+(y+srcSliceY)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]),
|
"2" (src[2]+(y+srcSliceY)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]),
|
||||||
"4" (c->dstW),
|
"4" (c->dstW),
|
||||||
"5" (c->sparc_coeffs)
|
"5" (c->sparc_coeffs)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return srcSliceH;
|
return srcSliceH;
|
||||||
}
|
}
|
||||||
|
|
||||||
SwsFunc ff_yuv2rgb_init_vis(SwsContext *c){
|
SwsFunc ff_yuv2rgb_init_vis(SwsContext *c){
|
||||||
|
@ -366,112 +366,112 @@ DECLARE_ALIGNED(8, const uint8_t, dither_8x8_220[8][8])={
|
|||||||
const char *sws_format_name(enum PixelFormat format)
|
const char *sws_format_name(enum PixelFormat format)
|
||||||
{
|
{
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case PIX_FMT_YUV420P:
|
case PIX_FMT_YUV420P:
|
||||||
return "yuv420p";
|
return "yuv420p";
|
||||||
case PIX_FMT_YUVA420P:
|
case PIX_FMT_YUVA420P:
|
||||||
return "yuva420p";
|
return "yuva420p";
|
||||||
case PIX_FMT_YUYV422:
|
case PIX_FMT_YUYV422:
|
||||||
return "yuyv422";
|
return "yuyv422";
|
||||||
case PIX_FMT_RGB24:
|
case PIX_FMT_RGB24:
|
||||||
return "rgb24";
|
return "rgb24";
|
||||||
case PIX_FMT_BGR24:
|
case PIX_FMT_BGR24:
|
||||||
return "bgr24";
|
return "bgr24";
|
||||||
case PIX_FMT_YUV422P:
|
case PIX_FMT_YUV422P:
|
||||||
return "yuv422p";
|
return "yuv422p";
|
||||||
case PIX_FMT_YUV444P:
|
case PIX_FMT_YUV444P:
|
||||||
return "yuv444p";
|
return "yuv444p";
|
||||||
case PIX_FMT_RGB32:
|
case PIX_FMT_RGB32:
|
||||||
return "rgb32";
|
return "rgb32";
|
||||||
case PIX_FMT_YUV410P:
|
case PIX_FMT_YUV410P:
|
||||||
return "yuv410p";
|
return "yuv410p";
|
||||||
case PIX_FMT_YUV411P:
|
case PIX_FMT_YUV411P:
|
||||||
return "yuv411p";
|
return "yuv411p";
|
||||||
case PIX_FMT_RGB565:
|
case PIX_FMT_RGB565:
|
||||||
return "rgb565";
|
return "rgb565";
|
||||||
case PIX_FMT_RGB555:
|
case PIX_FMT_RGB555:
|
||||||
return "rgb555";
|
return "rgb555";
|
||||||
case PIX_FMT_GRAY16BE:
|
case PIX_FMT_GRAY16BE:
|
||||||
return "gray16be";
|
return "gray16be";
|
||||||
case PIX_FMT_GRAY16LE:
|
case PIX_FMT_GRAY16LE:
|
||||||
return "gray16le";
|
return "gray16le";
|
||||||
case PIX_FMT_GRAY8:
|
case PIX_FMT_GRAY8:
|
||||||
return "gray8";
|
return "gray8";
|
||||||
case PIX_FMT_MONOWHITE:
|
case PIX_FMT_MONOWHITE:
|
||||||
return "mono white";
|
return "mono white";
|
||||||
case PIX_FMT_MONOBLACK:
|
case PIX_FMT_MONOBLACK:
|
||||||
return "mono black";
|
return "mono black";
|
||||||
case PIX_FMT_PAL8:
|
case PIX_FMT_PAL8:
|
||||||
return "Palette";
|
return "Palette";
|
||||||
case PIX_FMT_YUVJ420P:
|
case PIX_FMT_YUVJ420P:
|
||||||
return "yuvj420p";
|
return "yuvj420p";
|
||||||
case PIX_FMT_YUVJ422P:
|
case PIX_FMT_YUVJ422P:
|
||||||
return "yuvj422p";
|
return "yuvj422p";
|
||||||
case PIX_FMT_YUVJ444P:
|
case PIX_FMT_YUVJ444P:
|
||||||
return "yuvj444p";
|
return "yuvj444p";
|
||||||
case PIX_FMT_XVMC_MPEG2_MC:
|
case PIX_FMT_XVMC_MPEG2_MC:
|
||||||
return "xvmc_mpeg2_mc";
|
return "xvmc_mpeg2_mc";
|
||||||
case PIX_FMT_XVMC_MPEG2_IDCT:
|
case PIX_FMT_XVMC_MPEG2_IDCT:
|
||||||
return "xvmc_mpeg2_idct";
|
return "xvmc_mpeg2_idct";
|
||||||
case PIX_FMT_UYVY422:
|
case PIX_FMT_UYVY422:
|
||||||
return "uyvy422";
|
return "uyvy422";
|
||||||
case PIX_FMT_UYYVYY411:
|
case PIX_FMT_UYYVYY411:
|
||||||
return "uyyvyy411";
|
return "uyyvyy411";
|
||||||
case PIX_FMT_RGB32_1:
|
case PIX_FMT_RGB32_1:
|
||||||
return "rgb32x";
|
return "rgb32x";
|
||||||
case PIX_FMT_BGR32_1:
|
case PIX_FMT_BGR32_1:
|
||||||
return "bgr32x";
|
return "bgr32x";
|
||||||
case PIX_FMT_BGR32:
|
case PIX_FMT_BGR32:
|
||||||
return "bgr32";
|
return "bgr32";
|
||||||
case PIX_FMT_BGR565:
|
case PIX_FMT_BGR565:
|
||||||
return "bgr565";
|
return "bgr565";
|
||||||
case PIX_FMT_BGR555:
|
case PIX_FMT_BGR555:
|
||||||
return "bgr555";
|
return "bgr555";
|
||||||
case PIX_FMT_BGR8:
|
case PIX_FMT_BGR8:
|
||||||
return "bgr8";
|
return "bgr8";
|
||||||
case PIX_FMT_BGR4:
|
case PIX_FMT_BGR4:
|
||||||
return "bgr4";
|
return "bgr4";
|
||||||
case PIX_FMT_BGR4_BYTE:
|
case PIX_FMT_BGR4_BYTE:
|
||||||
return "bgr4 byte";
|
return "bgr4 byte";
|
||||||
case PIX_FMT_RGB8:
|
case PIX_FMT_RGB8:
|
||||||
return "rgb8";
|
return "rgb8";
|
||||||
case PIX_FMT_RGB4:
|
case PIX_FMT_RGB4:
|
||||||
return "rgb4";
|
return "rgb4";
|
||||||
case PIX_FMT_RGB4_BYTE:
|
case PIX_FMT_RGB4_BYTE:
|
||||||
return "rgb4 byte";
|
return "rgb4 byte";
|
||||||
case PIX_FMT_RGB48BE:
|
case PIX_FMT_RGB48BE:
|
||||||
return "rgb48be";
|
return "rgb48be";
|
||||||
case PIX_FMT_RGB48LE:
|
case PIX_FMT_RGB48LE:
|
||||||
return "rgb48le";
|
return "rgb48le";
|
||||||
case PIX_FMT_NV12:
|
case PIX_FMT_NV12:
|
||||||
return "nv12";
|
return "nv12";
|
||||||
case PIX_FMT_NV21:
|
case PIX_FMT_NV21:
|
||||||
return "nv21";
|
return "nv21";
|
||||||
case PIX_FMT_YUV440P:
|
case PIX_FMT_YUV440P:
|
||||||
return "yuv440p";
|
return "yuv440p";
|
||||||
case PIX_FMT_VDPAU_H264:
|
case PIX_FMT_VDPAU_H264:
|
||||||
return "vdpau_h264";
|
return "vdpau_h264";
|
||||||
case PIX_FMT_VDPAU_MPEG1:
|
case PIX_FMT_VDPAU_MPEG1:
|
||||||
return "vdpau_mpeg1";
|
return "vdpau_mpeg1";
|
||||||
case PIX_FMT_VDPAU_MPEG2:
|
case PIX_FMT_VDPAU_MPEG2:
|
||||||
return "vdpau_mpeg2";
|
return "vdpau_mpeg2";
|
||||||
case PIX_FMT_VDPAU_WMV3:
|
case PIX_FMT_VDPAU_WMV3:
|
||||||
return "vdpau_wmv3";
|
return "vdpau_wmv3";
|
||||||
case PIX_FMT_VDPAU_VC1:
|
case PIX_FMT_VDPAU_VC1:
|
||||||
return "vdpau_vc1";
|
return "vdpau_vc1";
|
||||||
case PIX_FMT_YUV420PLE:
|
case PIX_FMT_YUV420PLE:
|
||||||
return "yuv420ple";
|
return "yuv420ple";
|
||||||
case PIX_FMT_YUV422PLE:
|
case PIX_FMT_YUV422PLE:
|
||||||
return "yuv422ple";
|
return "yuv422ple";
|
||||||
case PIX_FMT_YUV444PLE:
|
case PIX_FMT_YUV444PLE:
|
||||||
return "yuv444ple";
|
return "yuv444ple";
|
||||||
case PIX_FMT_YUV420PBE:
|
case PIX_FMT_YUV420PBE:
|
||||||
return "yuv420pbe";
|
return "yuv420pbe";
|
||||||
case PIX_FMT_YUV422PBE:
|
case PIX_FMT_YUV422PBE:
|
||||||
return "yuv422pbe";
|
return "yuv422pbe";
|
||||||
case PIX_FMT_YUV444PBE:
|
case PIX_FMT_YUV444PBE:
|
||||||
return "yuv444pbe";
|
return "yuv444pbe";
|
||||||
default:
|
default:
|
||||||
return "Unknown format";
|
return "Unknown format";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1443,12 +1443,12 @@ static inline void monoblack2Y(uint8_t *dst, const uint8_t *src, long width, uin
|
|||||||
static double getSplineCoeff(double a, double b, double c, double d, double dist)
|
static double getSplineCoeff(double a, double b, double c, double d, double dist)
|
||||||
{
|
{
|
||||||
// printf("%f %f %f %f %f\n", a,b,c,d,dist);
|
// printf("%f %f %f %f %f\n", a,b,c,d,dist);
|
||||||
if (dist<=1.0) return ((d*dist + c)*dist + b)*dist +a;
|
if (dist<=1.0) return ((d*dist + c)*dist + b)*dist +a;
|
||||||
else return getSplineCoeff( 0.0,
|
else return getSplineCoeff( 0.0,
|
||||||
b+ 2.0*c + 3.0*d,
|
b+ 2.0*c + 3.0*d,
|
||||||
c + 3.0*d,
|
c + 3.0*d,
|
||||||
-b- 3.0*c - 6.0*d,
|
-b- 3.0*c - 6.0*d,
|
||||||
dist-1.0);
|
dist-1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outFilterSize, int xInc,
|
static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outFilterSize, int xInc,
|
||||||
@ -1515,14 +1515,14 @@ static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outF
|
|||||||
int j;
|
int j;
|
||||||
|
|
||||||
(*filterPos)[i]= xx;
|
(*filterPos)[i]= xx;
|
||||||
//bilinear upscale / linear interpolate / area averaging
|
//bilinear upscale / linear interpolate / area averaging
|
||||||
for (j=0; j<filterSize; j++)
|
for (j=0; j<filterSize; j++)
|
||||||
{
|
{
|
||||||
int64_t coeff= fone - FFABS((xx<<16) - xDstInSrc)*(fone>>16);
|
int64_t coeff= fone - FFABS((xx<<16) - xDstInSrc)*(fone>>16);
|
||||||
if (coeff<0) coeff=0;
|
if (coeff<0) coeff=0;
|
||||||
filter[i*filterSize + j]= coeff;
|
filter[i*filterSize + j]= coeff;
|
||||||
xx++;
|
xx++;
|
||||||
}
|
}
|
||||||
xDstInSrc+= xInc;
|
xDstInSrc+= xInc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2562,20 +2562,20 @@ int sws_getColorspaceDetails(SwsContext *c, int **inv_table, int *srcRange, int
|
|||||||
static int handle_jpeg(enum PixelFormat *format)
|
static int handle_jpeg(enum PixelFormat *format)
|
||||||
{
|
{
|
||||||
switch (*format) {
|
switch (*format) {
|
||||||
case PIX_FMT_YUVJ420P:
|
case PIX_FMT_YUVJ420P:
|
||||||
*format = PIX_FMT_YUV420P;
|
*format = PIX_FMT_YUV420P;
|
||||||
return 1;
|
return 1;
|
||||||
case PIX_FMT_YUVJ422P:
|
case PIX_FMT_YUVJ422P:
|
||||||
*format = PIX_FMT_YUV422P;
|
*format = PIX_FMT_YUV422P;
|
||||||
return 1;
|
return 1;
|
||||||
case PIX_FMT_YUVJ444P:
|
case PIX_FMT_YUVJ444P:
|
||||||
*format = PIX_FMT_YUV444P;
|
*format = PIX_FMT_YUV444P;
|
||||||
return 1;
|
return 1;
|
||||||
case PIX_FMT_YUVJ440P:
|
case PIX_FMT_YUVJ440P:
|
||||||
*format = PIX_FMT_YUV440P;
|
*format = PIX_FMT_YUV440P;
|
||||||
return 1;
|
return 1;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2837,7 +2837,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
|
|||||||
if (c->swScale){
|
if (c->swScale){
|
||||||
if (flags&SWS_PRINT_INFO)
|
if (flags&SWS_PRINT_INFO)
|
||||||
av_log(c, AV_LOG_INFO, "using unscaled %s -> %s special converter\n",
|
av_log(c, AV_LOG_INFO, "using unscaled %s -> %s special converter\n",
|
||||||
sws_format_name(srcFormat), sws_format_name(dstFormat));
|
sws_format_name(srcFormat), sws_format_name(dstFormat));
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -932,13 +932,13 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, const int16_t *lumFilter, con
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if COMPILE_TEMPLATE_ALTIVEC
|
#if COMPILE_TEMPLATE_ALTIVEC
|
||||||
yuv2yuvX_altivec_real(lumFilter, lumSrc, lumFilterSize,
|
yuv2yuvX_altivec_real(lumFilter, lumSrc, lumFilterSize,
|
||||||
chrFilter, chrSrc, chrFilterSize,
|
chrFilter, chrSrc, chrFilterSize,
|
||||||
dest, uDest, vDest, dstW, chrDstW);
|
dest, uDest, vDest, dstW, chrDstW);
|
||||||
#else //COMPILE_TEMPLATE_ALTIVEC
|
#else //COMPILE_TEMPLATE_ALTIVEC
|
||||||
yuv2yuvXinC(lumFilter, lumSrc, lumFilterSize,
|
yuv2yuvXinC(lumFilter, lumSrc, lumFilterSize,
|
||||||
chrFilter, chrSrc, chrFilterSize,
|
chrFilter, chrSrc, chrFilterSize,
|
||||||
alpSrc, dest, uDest, vDest, aDest, dstW, chrDstW);
|
alpSrc, dest, uDest, vDest, aDest, dstW, chrDstW);
|
||||||
#endif //!COMPILE_TEMPLATE_ALTIVEC
|
#endif //!COMPILE_TEMPLATE_ALTIVEC
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -946,9 +946,9 @@ static inline void RENAME(yuv2nv12X)(SwsContext *c, const int16_t *lumFilter, co
|
|||||||
const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
|
const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
|
||||||
uint8_t *dest, uint8_t *uDest, int dstW, int chrDstW, int dstFormat)
|
uint8_t *dest, uint8_t *uDest, int dstW, int chrDstW, int dstFormat)
|
||||||
{
|
{
|
||||||
yuv2nv12XinC(lumFilter, lumSrc, lumFilterSize,
|
yuv2nv12XinC(lumFilter, lumSrc, lumFilterSize,
|
||||||
chrFilter, chrSrc, chrFilterSize,
|
chrFilter, chrSrc, chrFilterSize,
|
||||||
dest, uDest, dstW, chrDstW, dstFormat);
|
dest, uDest, dstW, chrDstW, dstFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void RENAME(yuv2yuv1)(SwsContext *c, const int16_t *lumSrc, const int16_t *chrSrc, const int16_t *alpSrc,
|
static inline void RENAME(yuv2yuv1)(SwsContext *c, const int16_t *lumSrc, const int16_t *chrSrc, const int16_t *alpSrc,
|
||||||
@ -1198,9 +1198,9 @@ static inline void RENAME(yuv2packedX)(SwsContext *c, const int16_t *lumFilter,
|
|||||||
/* The following list of supported dstFormat values should
|
/* The following list of supported dstFormat values should
|
||||||
match what's found in the body of ff_yuv2packedX_altivec() */
|
match what's found in the body of ff_yuv2packedX_altivec() */
|
||||||
if (!(c->flags & SWS_BITEXACT) && !c->alpPixBuf &&
|
if (!(c->flags & SWS_BITEXACT) && !c->alpPixBuf &&
|
||||||
(c->dstFormat==PIX_FMT_ABGR || c->dstFormat==PIX_FMT_BGRA ||
|
(c->dstFormat==PIX_FMT_ABGR || c->dstFormat==PIX_FMT_BGRA ||
|
||||||
c->dstFormat==PIX_FMT_BGR24 || c->dstFormat==PIX_FMT_RGB24 ||
|
c->dstFormat==PIX_FMT_BGR24 || c->dstFormat==PIX_FMT_RGB24 ||
|
||||||
c->dstFormat==PIX_FMT_RGBA || c->dstFormat==PIX_FMT_ARGB))
|
c->dstFormat==PIX_FMT_RGBA || c->dstFormat==PIX_FMT_ARGB))
|
||||||
ff_yuv2packedX_altivec(c, lumFilter, lumSrc, lumFilterSize,
|
ff_yuv2packedX_altivec(c, lumFilter, lumSrc, lumFilterSize,
|
||||||
chrFilter, chrSrc, chrFilterSize,
|
chrFilter, chrSrc, chrFilterSize,
|
||||||
dest, dstW, dstY);
|
dest, dstW, dstY);
|
||||||
@ -1358,7 +1358,7 @@ static inline void RENAME(yuv2packed2)(SwsContext *c, const uint16_t *buf0, cons
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif //COMPILE_TEMPLATE_MMX
|
#endif //COMPILE_TEMPLATE_MMX
|
||||||
YSCALE_YUV_2_ANYRGB_C(YSCALE_YUV_2_RGB2_C, YSCALE_YUV_2_PACKED2_C(void,0), YSCALE_YUV_2_GRAY16_2_C, YSCALE_YUV_2_MONO2_C)
|
YSCALE_YUV_2_ANYRGB_C(YSCALE_YUV_2_RGB2_C, YSCALE_YUV_2_PACKED2_C(void,0), YSCALE_YUV_2_GRAY16_2_C, YSCALE_YUV_2_MONO2_C)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2305,14 +2305,14 @@ static inline void RENAME(hyscale)(SwsContext *c, uint16_t *dst, long dstWidth,
|
|||||||
|
|
||||||
#endif /* ARCH_X86_64 */
|
#endif /* ARCH_X86_64 */
|
||||||
|
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
|
|
||||||
#if defined(PIC)
|
#if defined(PIC)
|
||||||
"mov %5, %%"REG_b" \n\t"
|
"mov %5, %%"REG_b" \n\t"
|
||||||
@ -2470,10 +2470,10 @@ inline static void RENAME(hcscale)(SwsContext *c, uint16_t *dst, long dstWidth,
|
|||||||
PREFETCH" 32(%%"REG_c") \n\t"
|
PREFETCH" 32(%%"REG_c") \n\t"
|
||||||
PREFETCH" 64(%%"REG_c") \n\t"
|
PREFETCH" 64(%%"REG_c") \n\t"
|
||||||
|
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
"xor %%"REG_a", %%"REG_a" \n\t" // i
|
"xor %%"REG_a", %%"REG_a" \n\t" // i
|
||||||
"mov %5, %%"REG_c" \n\t" // src
|
"mov %5, %%"REG_c" \n\t" // src
|
||||||
"mov %1, %%"REG_D" \n\t" // buf1
|
"mov %1, %%"REG_D" \n\t" // buf1
|
||||||
@ -2482,10 +2482,10 @@ CALL_MMX2_FILTER_CODE
|
|||||||
PREFETCH" 32(%%"REG_c") \n\t"
|
PREFETCH" 32(%%"REG_c") \n\t"
|
||||||
PREFETCH" 64(%%"REG_c") \n\t"
|
PREFETCH" 64(%%"REG_c") \n\t"
|
||||||
|
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
CALL_MMX2_FILTER_CODE
|
CALL_MMX2_FILTER_CODE
|
||||||
|
|
||||||
#if defined(PIC)
|
#if defined(PIC)
|
||||||
"mov %6, %%"REG_b" \n\t"
|
"mov %6, %%"REG_b" \n\t"
|
||||||
@ -2754,60 +2754,60 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s
|
|||||||
const int16_t **alpSrcPtr= (CONFIG_SWSCALE_ALPHA && alpPixBuf) ? (const int16_t **) alpPixBuf + lumBufIndex + firstLumSrcY - lastInLumBuf + vLumBufSize : NULL;
|
const int16_t **alpSrcPtr= (CONFIG_SWSCALE_ALPHA && alpPixBuf) ? (const int16_t **) alpPixBuf + lumBufIndex + firstLumSrcY - lastInLumBuf + vLumBufSize : NULL;
|
||||||
#if COMPILE_TEMPLATE_MMX
|
#if COMPILE_TEMPLATE_MMX
|
||||||
int i;
|
int i;
|
||||||
if (flags & SWS_ACCURATE_RND){
|
if (flags & SWS_ACCURATE_RND){
|
||||||
int s= APCK_SIZE / 8;
|
int s= APCK_SIZE / 8;
|
||||||
for (i=0; i<vLumFilterSize; i+=2){
|
for (i=0; i<vLumFilterSize; i+=2){
|
||||||
*(void**)&lumMmxFilter[s*i ]= lumSrcPtr[i ];
|
*(void**)&lumMmxFilter[s*i ]= lumSrcPtr[i ];
|
||||||
*(void**)&lumMmxFilter[s*i+APCK_PTR2/4 ]= lumSrcPtr[i+(vLumFilterSize>1)];
|
*(void**)&lumMmxFilter[s*i+APCK_PTR2/4 ]= lumSrcPtr[i+(vLumFilterSize>1)];
|
||||||
lumMmxFilter[s*i+APCK_COEF/4 ]=
|
lumMmxFilter[s*i+APCK_COEF/4 ]=
|
||||||
lumMmxFilter[s*i+APCK_COEF/4+1]= vLumFilter[dstY*vLumFilterSize + i ]
|
lumMmxFilter[s*i+APCK_COEF/4+1]= vLumFilter[dstY*vLumFilterSize + i ]
|
||||||
+ (vLumFilterSize>1 ? vLumFilter[dstY*vLumFilterSize + i + 1]<<16 : 0);
|
+ (vLumFilterSize>1 ? vLumFilter[dstY*vLumFilterSize + i + 1]<<16 : 0);
|
||||||
if (CONFIG_SWSCALE_ALPHA && alpPixBuf){
|
if (CONFIG_SWSCALE_ALPHA && alpPixBuf){
|
||||||
*(void**)&alpMmxFilter[s*i ]= alpSrcPtr[i ];
|
*(void**)&alpMmxFilter[s*i ]= alpSrcPtr[i ];
|
||||||
*(void**)&alpMmxFilter[s*i+APCK_PTR2/4 ]= alpSrcPtr[i+(vLumFilterSize>1)];
|
*(void**)&alpMmxFilter[s*i+APCK_PTR2/4 ]= alpSrcPtr[i+(vLumFilterSize>1)];
|
||||||
alpMmxFilter[s*i+APCK_COEF/4 ]=
|
alpMmxFilter[s*i+APCK_COEF/4 ]=
|
||||||
alpMmxFilter[s*i+APCK_COEF/4+1]= lumMmxFilter[s*i+APCK_COEF/4 ];
|
alpMmxFilter[s*i+APCK_COEF/4+1]= lumMmxFilter[s*i+APCK_COEF/4 ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i=0; i<vChrFilterSize; i+=2){
|
||||||
|
*(void**)&chrMmxFilter[s*i ]= chrSrcPtr[i ];
|
||||||
|
*(void**)&chrMmxFilter[s*i+APCK_PTR2/4 ]= chrSrcPtr[i+(vChrFilterSize>1)];
|
||||||
|
chrMmxFilter[s*i+APCK_COEF/4 ]=
|
||||||
|
chrMmxFilter[s*i+APCK_COEF/4+1]= vChrFilter[chrDstY*vChrFilterSize + i ]
|
||||||
|
+ (vChrFilterSize>1 ? vChrFilter[chrDstY*vChrFilterSize + i + 1]<<16 : 0);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
for (i=0; i<vLumFilterSize; i++)
|
||||||
|
{
|
||||||
|
lumMmxFilter[4*i+0]= (int32_t)lumSrcPtr[i];
|
||||||
|
lumMmxFilter[4*i+1]= (uint64_t)lumSrcPtr[i] >> 32;
|
||||||
|
lumMmxFilter[4*i+2]=
|
||||||
|
lumMmxFilter[4*i+3]=
|
||||||
|
((uint16_t)vLumFilter[dstY*vLumFilterSize + i])*0x10001;
|
||||||
|
if (CONFIG_SWSCALE_ALPHA && alpPixBuf){
|
||||||
|
alpMmxFilter[4*i+0]= (int32_t)alpSrcPtr[i];
|
||||||
|
alpMmxFilter[4*i+1]= (uint64_t)alpSrcPtr[i] >> 32;
|
||||||
|
alpMmxFilter[4*i+2]=
|
||||||
|
alpMmxFilter[4*i+3]= lumMmxFilter[4*i+2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i=0; i<vChrFilterSize; i++)
|
||||||
|
{
|
||||||
|
chrMmxFilter[4*i+0]= (int32_t)chrSrcPtr[i];
|
||||||
|
chrMmxFilter[4*i+1]= (uint64_t)chrSrcPtr[i] >> 32;
|
||||||
|
chrMmxFilter[4*i+2]=
|
||||||
|
chrMmxFilter[4*i+3]=
|
||||||
|
((uint16_t)vChrFilter[chrDstY*vChrFilterSize + i])*0x10001;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i=0; i<vChrFilterSize; i+=2){
|
|
||||||
*(void**)&chrMmxFilter[s*i ]= chrSrcPtr[i ];
|
|
||||||
*(void**)&chrMmxFilter[s*i+APCK_PTR2/4 ]= chrSrcPtr[i+(vChrFilterSize>1)];
|
|
||||||
chrMmxFilter[s*i+APCK_COEF/4 ]=
|
|
||||||
chrMmxFilter[s*i+APCK_COEF/4+1]= vChrFilter[chrDstY*vChrFilterSize + i ]
|
|
||||||
+ (vChrFilterSize>1 ? vChrFilter[chrDstY*vChrFilterSize + i + 1]<<16 : 0);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
for (i=0; i<vLumFilterSize; i++)
|
|
||||||
{
|
|
||||||
lumMmxFilter[4*i+0]= (int32_t)lumSrcPtr[i];
|
|
||||||
lumMmxFilter[4*i+1]= (uint64_t)lumSrcPtr[i] >> 32;
|
|
||||||
lumMmxFilter[4*i+2]=
|
|
||||||
lumMmxFilter[4*i+3]=
|
|
||||||
((uint16_t)vLumFilter[dstY*vLumFilterSize + i])*0x10001;
|
|
||||||
if (CONFIG_SWSCALE_ALPHA && alpPixBuf){
|
|
||||||
alpMmxFilter[4*i+0]= (int32_t)alpSrcPtr[i];
|
|
||||||
alpMmxFilter[4*i+1]= (uint64_t)alpSrcPtr[i] >> 32;
|
|
||||||
alpMmxFilter[4*i+2]=
|
|
||||||
alpMmxFilter[4*i+3]= lumMmxFilter[4*i+2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i=0; i<vChrFilterSize; i++)
|
|
||||||
{
|
|
||||||
chrMmxFilter[4*i+0]= (int32_t)chrSrcPtr[i];
|
|
||||||
chrMmxFilter[4*i+1]= (uint64_t)chrSrcPtr[i] >> 32;
|
|
||||||
chrMmxFilter[4*i+2]=
|
|
||||||
chrMmxFilter[4*i+3]=
|
|
||||||
((uint16_t)vChrFilter[chrDstY*vChrFilterSize + i])*0x10001;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
if (dstFormat == PIX_FMT_NV12 || dstFormat == PIX_FMT_NV21){
|
if (dstFormat == PIX_FMT_NV12 || dstFormat == PIX_FMT_NV21){
|
||||||
const int chrSkipMask= (1<<c->chrDstVSubSample)-1;
|
const int chrSkipMask= (1<<c->chrDstVSubSample)-1;
|
||||||
if (dstY&chrSkipMask) uDest= NULL; //FIXME split functions in lumi / chromi
|
if (dstY&chrSkipMask) uDest= NULL; //FIXME split functions in lumi / chromi
|
||||||
c->yuv2nv12X(c,
|
c->yuv2nv12X(c,
|
||||||
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
dest, uDest, dstW, chrDstW, dstFormat);
|
dest, uDest, dstW, chrDstW, dstFormat);
|
||||||
}
|
}
|
||||||
else if (isPlanarYUV(dstFormat) || dstFormat==PIX_FMT_GRAY8) //YV12 like
|
else if (isPlanarYUV(dstFormat) || dstFormat==PIX_FMT_GRAY8) //YV12 like
|
||||||
{
|
{
|
||||||
@ -2816,10 +2816,10 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s
|
|||||||
if (is16BPS(dstFormat))
|
if (is16BPS(dstFormat))
|
||||||
{
|
{
|
||||||
yuv2yuvX16inC(
|
yuv2yuvX16inC(
|
||||||
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, (uint16_t *) dest, (uint16_t *) uDest, (uint16_t *) vDest, (uint16_t *) aDest, dstW, chrDstW,
|
alpSrcPtr, (uint16_t *) dest, (uint16_t *) uDest, (uint16_t *) vDest, (uint16_t *) aDest, dstW, chrDstW,
|
||||||
dstFormat);
|
dstFormat);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (vLumFilterSize == 1 && vChrFilterSize == 1) // unscaled YV12
|
if (vLumFilterSize == 1 && vChrFilterSize == 1) // unscaled YV12
|
||||||
@ -2832,9 +2832,9 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s
|
|||||||
else //General YV12
|
else //General YV12
|
||||||
{
|
{
|
||||||
c->yuv2yuvX(c,
|
c->yuv2yuvX(c,
|
||||||
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, dest, uDest, vDest, aDest, dstW, chrDstW);
|
alpSrcPtr, dest, uDest, vDest, aDest, dstW, chrDstW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2846,13 +2846,13 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s
|
|||||||
int chrAlpha= vChrFilter[2*dstY+1];
|
int chrAlpha= vChrFilter[2*dstY+1];
|
||||||
if(flags & SWS_FULL_CHR_H_INT){
|
if(flags & SWS_FULL_CHR_H_INT){
|
||||||
yuv2rgbXinC_full(c, //FIXME write a packed1_full function
|
yuv2rgbXinC_full(c, //FIXME write a packed1_full function
|
||||||
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, dest, dstW, dstY);
|
alpSrcPtr, dest, dstW, dstY);
|
||||||
}else{
|
}else{
|
||||||
c->yuv2packed1(c, *lumSrcPtr, *chrSrcPtr, *(chrSrcPtr+1),
|
c->yuv2packed1(c, *lumSrcPtr, *chrSrcPtr, *(chrSrcPtr+1),
|
||||||
alpPixBuf ? *alpSrcPtr : NULL,
|
alpPixBuf ? *alpSrcPtr : NULL,
|
||||||
dest, dstW, chrAlpha, dstFormat, flags, dstY);
|
dest, dstW, chrAlpha, dstFormat, flags, dstY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (vLumFilterSize == 2 && vChrFilterSize == 2) //bilinear upscale RGB
|
else if (vLumFilterSize == 2 && vChrFilterSize == 2) //bilinear upscale RGB
|
||||||
@ -2865,27 +2865,27 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s
|
|||||||
chrMmxFilter[3]= vChrFilter[2*chrDstY]*0x10001;
|
chrMmxFilter[3]= vChrFilter[2*chrDstY]*0x10001;
|
||||||
if(flags & SWS_FULL_CHR_H_INT){
|
if(flags & SWS_FULL_CHR_H_INT){
|
||||||
yuv2rgbXinC_full(c, //FIXME write a packed2_full function
|
yuv2rgbXinC_full(c, //FIXME write a packed2_full function
|
||||||
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, dest, dstW, dstY);
|
alpSrcPtr, dest, dstW, dstY);
|
||||||
}else{
|
}else{
|
||||||
c->yuv2packed2(c, *lumSrcPtr, *(lumSrcPtr+1), *chrSrcPtr, *(chrSrcPtr+1),
|
c->yuv2packed2(c, *lumSrcPtr, *(lumSrcPtr+1), *chrSrcPtr, *(chrSrcPtr+1),
|
||||||
alpPixBuf ? *alpSrcPtr : NULL, alpPixBuf ? *(alpSrcPtr+1) : NULL,
|
alpPixBuf ? *alpSrcPtr : NULL, alpPixBuf ? *(alpSrcPtr+1) : NULL,
|
||||||
dest, dstW, lumAlpha, chrAlpha, dstY);
|
dest, dstW, lumAlpha, chrAlpha, dstY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else //general RGB
|
else //general RGB
|
||||||
{
|
{
|
||||||
if(flags & SWS_FULL_CHR_H_INT){
|
if(flags & SWS_FULL_CHR_H_INT){
|
||||||
yuv2rgbXinC_full(c,
|
yuv2rgbXinC_full(c,
|
||||||
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, dest, dstW, dstY);
|
alpSrcPtr, dest, dstW, dstY);
|
||||||
}else{
|
}else{
|
||||||
c->yuv2packedX(c,
|
c->yuv2packedX(c,
|
||||||
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, dest, dstW, dstY);
|
alpSrcPtr, dest, dstW, dstY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2899,9 +2899,9 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s
|
|||||||
const int chrSkipMask= (1<<c->chrDstVSubSample)-1;
|
const int chrSkipMask= (1<<c->chrDstVSubSample)-1;
|
||||||
if (dstY&chrSkipMask) uDest= NULL; //FIXME split functions in lumi / chromi
|
if (dstY&chrSkipMask) uDest= NULL; //FIXME split functions in lumi / chromi
|
||||||
yuv2nv12XinC(
|
yuv2nv12XinC(
|
||||||
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
dest, uDest, dstW, chrDstW, dstFormat);
|
dest, uDest, dstW, chrDstW, dstFormat);
|
||||||
}
|
}
|
||||||
else if (isPlanarYUV(dstFormat) || dstFormat==PIX_FMT_GRAY8) //YV12
|
else if (isPlanarYUV(dstFormat) || dstFormat==PIX_FMT_GRAY8) //YV12
|
||||||
{
|
{
|
||||||
@ -2910,17 +2910,17 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s
|
|||||||
if (is16BPS(dstFormat))
|
if (is16BPS(dstFormat))
|
||||||
{
|
{
|
||||||
yuv2yuvX16inC(
|
yuv2yuvX16inC(
|
||||||
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, (uint16_t *) dest, (uint16_t *) uDest, (uint16_t *) vDest, (uint16_t *) aDest, dstW, chrDstW,
|
alpSrcPtr, (uint16_t *) dest, (uint16_t *) uDest, (uint16_t *) vDest, (uint16_t *) aDest, dstW, chrDstW,
|
||||||
dstFormat);
|
dstFormat);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
yuv2yuvXinC(
|
yuv2yuvXinC(
|
||||||
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, dest, uDest, vDest, aDest, dstW, chrDstW);
|
alpSrcPtr, dest, uDest, vDest, aDest, dstW, chrDstW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2929,14 +2929,14 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s
|
|||||||
assert(chrSrcPtr + vChrFilterSize - 1 < chrPixBuf + vChrBufSize*2);
|
assert(chrSrcPtr + vChrFilterSize - 1 < chrPixBuf + vChrBufSize*2);
|
||||||
if(flags & SWS_FULL_CHR_H_INT){
|
if(flags & SWS_FULL_CHR_H_INT){
|
||||||
yuv2rgbXinC_full(c,
|
yuv2rgbXinC_full(c,
|
||||||
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, dest, dstW, dstY);
|
alpSrcPtr, dest, dstW, dstY);
|
||||||
}else{
|
}else{
|
||||||
yuv2packedXinC(c,
|
yuv2packedXinC(c,
|
||||||
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize,
|
||||||
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize,
|
||||||
alpSrcPtr, dest, dstW, dstY);
|
alpSrcPtr, dest, dstW, dstY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user