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:
Ramiro Polla
2009-08-16 00:32:04 +00:00
parent 2513b2b436
commit 9b734d44ab
8 changed files with 1715 additions and 1715 deletions

View File

@ -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);
} }
} }

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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){

View File

@ -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;
} }
} }

View File

@ -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);
} }
} }
} }