- 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/libswscaletags/v0.6
| @@ -41,17 +41,17 @@ static char *args_parse(int argc, char *argv[]) | |||
| while ((o = getopt(argc, argv, "m23")) != -1) { | |||
| switch (o) { | |||
| case 'm': | |||
| cpu_caps |= SWS_CPU_CAPS_MMX; | |||
| break; | |||
| case '2': | |||
| cpu_caps |= SWS_CPU_CAPS_MMX2; | |||
| break; | |||
| case '3': | |||
| cpu_caps |= SWS_CPU_CAPS_3DNOW; | |||
| break; | |||
| default: | |||
| av_log(NULL, AV_LOG_ERROR, "Unknown option %c\n", o); | |||
| case 'm': | |||
| cpu_caps |= SWS_CPU_CAPS_MMX; | |||
| break; | |||
| case '2': | |||
| cpu_caps |= SWS_CPU_CAPS_MMX2; | |||
| break; | |||
| case '3': | |||
| cpu_caps |= SWS_CPU_CAPS_3DNOW; | |||
| break; | |||
| default: | |||
| 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); | |||
| switch(c->dstFormat) { | |||
| 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_RGBA: out_rgba (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_BGR24: out_bgr24 (R,G,B,out); break; | |||
| default: | |||
| 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_RGBA: out_rgba (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_BGR24: out_bgr24 (R,G,B,out); break; | |||
| default: | |||
| { | |||
| /* If this is reached, the caller should have called yuv2packedXinC | |||
| instead. */ | |||
| @@ -934,17 +934,17 @@ ff_yuv2packedX_altivec(SwsContext *c, | |||
| nout = (vector unsigned char *)scratch; | |||
| switch(c->dstFormat) { | |||
| 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_RGBA: out_rgba (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_BGR24: out_bgr24 (R,G,B,nout); break; | |||
| default: | |||
| /* Unreachable, I think. */ | |||
| av_log(c, AV_LOG_ERROR, "altivec_yuv2packedX doesn't support %s output\n", | |||
| sws_format_name(c->dstFormat)); | |||
| return; | |||
| 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_RGBA: out_rgba (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_BGR24: out_bgr24 (R,G,B,nout); break; | |||
| default: | |||
| /* Unreachable, I think. */ | |||
| av_log(c, AV_LOG_ERROR, "altivec_yuv2packedX doesn't support %s output\n", | |||
| sws_format_name(c->dstFormat)); | |||
| return; | |||
| } | |||
| 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 srcStride3, long dstStride); | |||
| void (*uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| void (*uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| void (*yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| #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, | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| extern void (*uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| extern void (*yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| extern void (*yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| long width, long height, | |||
| long lumStride, long chromStride, long srcStride); | |||
| void sws_rgb2rgb_init(int flags); | |||
| @@ -83,105 +83,105 @@ | |||
| // 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, | |||
| int srcSliceH, uint8_t* dst[], int dstStride[]){ | |||
| int y, out1, out2, out3, out4, out5, out6; | |||
| for(y=0;y < srcSliceH;++y) { | |||
| __asm__ volatile ( | |||
| YUV2RGB_INIT | |||
| "wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */ | |||
| "1: \n\t" | |||
| "ldda [%1] %%asi, %%f2 \n\t" | |||
| "ldda [%1+2] %%asi, %%f18 \n\t" | |||
| "ldda [%2] %%asi, %%f4 \n\t" | |||
| "ldda [%2+2] %%asi, %%f20 \n\t" | |||
| "ld [%0], %%f0 \n\t" | |||
| "ld [%0+4], %%f16 \n\t" | |||
| "fpmerge %%f3, %%f3, %%f2 \n\t" | |||
| "fpmerge %%f19, %%f19, %%f18 \n\t" | |||
| "fpmerge %%f5, %%f5, %%f4 \n\t" | |||
| "fpmerge %%f21, %%f21, %%f20 \n\t" | |||
| YUV2RGB_KERNEL | |||
| "fzero %%f0 \n\t" | |||
| "fpmerge %%f4, %%f6, %%f8 \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, %%f18, %%f26 \n\t" // 0,g,t2 | |||
| "fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb | |||
| "fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb | |||
| "fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb | |||
| "fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb | |||
| "std %%f4, [%3] \n\t" | |||
| "std %%f20, [%3+16] \n\t" | |||
| "std %%f6, [%3+8] \n\t" | |||
| "std %%f22, [%3+24] \n\t" | |||
| "add %0, 8, %0 \n\t" | |||
| "add %1, 4, %1 \n\t" | |||
| "add %2, 4, %2 \n\t" | |||
| "subcc %4, 8, %4 \n\t" | |||
| "bne 1b \n\t" | |||
| "add %3, 32, %3 \n\t" //delay slot | |||
| : "=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]), | |||
| "2" (src[2]+((y+srcSliceY)>>1)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]), | |||
| "4" (c->dstW), | |||
| "5" (c->sparc_coeffs) | |||
| ); | |||
| } | |||
| return srcSliceH; | |||
| int y, out1, out2, out3, out4, out5, out6; | |||
| for(y=0;y < srcSliceH;++y) { | |||
| __asm__ volatile ( | |||
| YUV2RGB_INIT | |||
| "wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */ | |||
| "1: \n\t" | |||
| "ldda [%1] %%asi, %%f2 \n\t" | |||
| "ldda [%1+2] %%asi, %%f18 \n\t" | |||
| "ldda [%2] %%asi, %%f4 \n\t" | |||
| "ldda [%2+2] %%asi, %%f20 \n\t" | |||
| "ld [%0], %%f0 \n\t" | |||
| "ld [%0+4], %%f16 \n\t" | |||
| "fpmerge %%f3, %%f3, %%f2 \n\t" | |||
| "fpmerge %%f19, %%f19, %%f18 \n\t" | |||
| "fpmerge %%f5, %%f5, %%f4 \n\t" | |||
| "fpmerge %%f21, %%f21, %%f20 \n\t" | |||
| YUV2RGB_KERNEL | |||
| "fzero %%f0 \n\t" | |||
| "fpmerge %%f4, %%f6, %%f8 \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, %%f18, %%f26 \n\t" // 0,g,t2 | |||
| "fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb | |||
| "fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb | |||
| "fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb | |||
| "fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb | |||
| "std %%f4, [%3] \n\t" | |||
| "std %%f20, [%3+16] \n\t" | |||
| "std %%f6, [%3+8] \n\t" | |||
| "std %%f22, [%3+24] \n\t" | |||
| "add %0, 8, %0 \n\t" | |||
| "add %1, 4, %1 \n\t" | |||
| "add %2, 4, %2 \n\t" | |||
| "subcc %4, 8, %4 \n\t" | |||
| "bne 1b \n\t" | |||
| "add %3, 32, %3 \n\t" //delay slot | |||
| : "=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]), | |||
| "2" (src[2]+((y+srcSliceY)>>1)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]), | |||
| "4" (c->dstW), | |||
| "5" (c->sparc_coeffs) | |||
| ); | |||
| } | |||
| return srcSliceH; | |||
| } | |||
| // 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, | |||
| int srcSliceH, uint8_t* dst[], int dstStride[]){ | |||
| int y, out1, out2, out3, out4, out5, out6; | |||
| for(y=0;y < srcSliceH;++y) { | |||
| __asm__ volatile ( | |||
| YUV2RGB_INIT | |||
| "wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */ | |||
| "1: \n\t" | |||
| "ldda [%1] %%asi, %%f2 \n\t" | |||
| "ldda [%1+2] %%asi, %%f18 \n\t" | |||
| "ldda [%2] %%asi, %%f4 \n\t" | |||
| "ldda [%2+2] %%asi, %%f20 \n\t" | |||
| "ld [%0], %%f0 \n\t" | |||
| "ld [%0+4], %%f16 \n\t" | |||
| "fpmerge %%f3, %%f3, %%f2 \n\t" | |||
| "fpmerge %%f19, %%f19, %%f18 \n\t" | |||
| "fpmerge %%f5, %%f5, %%f4 \n\t" | |||
| "fpmerge %%f21, %%f21, %%f20 \n\t" | |||
| YUV2RGB_KERNEL | |||
| "fzero %%f0 \n\t" | |||
| "fpmerge %%f4, %%f6, %%f8 \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, %%f18, %%f26 \n\t" // 0,g,t2 | |||
| "fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb | |||
| "fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb | |||
| "fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb | |||
| "fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb | |||
| "std %%f4, [%3] \n\t" | |||
| "std %%f20, [%3+16] \n\t" | |||
| "std %%f6, [%3+8] \n\t" | |||
| "std %%f22, [%3+24] \n\t" | |||
| "add %0, 8, %0 \n\t" | |||
| "add %1, 4, %1 \n\t" | |||
| "add %2, 4, %2 \n\t" | |||
| "subcc %4, 8, %4 \n\t" | |||
| "bne 1b \n\t" | |||
| "add %3, 32, %3 \n\t" //delay slot | |||
| : "=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]), | |||
| "2" (src[2]+(y+srcSliceY)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]), | |||
| "4" (c->dstW), | |||
| "5" (c->sparc_coeffs) | |||
| ); | |||
| } | |||
| return srcSliceH; | |||
| int y, out1, out2, out3, out4, out5, out6; | |||
| for(y=0;y < srcSliceH;++y) { | |||
| __asm__ volatile ( | |||
| YUV2RGB_INIT | |||
| "wr %%g0, 0xd2, %%asi \n\t" /* ASI_FL16_P */ | |||
| "1: \n\t" | |||
| "ldda [%1] %%asi, %%f2 \n\t" | |||
| "ldda [%1+2] %%asi, %%f18 \n\t" | |||
| "ldda [%2] %%asi, %%f4 \n\t" | |||
| "ldda [%2+2] %%asi, %%f20 \n\t" | |||
| "ld [%0], %%f0 \n\t" | |||
| "ld [%0+4], %%f16 \n\t" | |||
| "fpmerge %%f3, %%f3, %%f2 \n\t" | |||
| "fpmerge %%f19, %%f19, %%f18 \n\t" | |||
| "fpmerge %%f5, %%f5, %%f4 \n\t" | |||
| "fpmerge %%f21, %%f21, %%f20 \n\t" | |||
| YUV2RGB_KERNEL | |||
| "fzero %%f0 \n\t" | |||
| "fpmerge %%f4, %%f6, %%f8 \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, %%f18, %%f26 \n\t" // 0,g,t2 | |||
| "fpmerge %%f10, %%f8, %%f4 \n\t" // t2,t1,msb | |||
| "fpmerge %%f26, %%f24, %%f20 \n\t" // t2,t1,msb | |||
| "fpmerge %%f11, %%f9, %%f6 \n\t" // t2,t1,lsb | |||
| "fpmerge %%f27, %%f25, %%f22 \n\t" // t2,t1,lsb | |||
| "std %%f4, [%3] \n\t" | |||
| "std %%f20, [%3+16] \n\t" | |||
| "std %%f6, [%3+8] \n\t" | |||
| "std %%f22, [%3+24] \n\t" | |||
| "add %0, 8, %0 \n\t" | |||
| "add %1, 4, %1 \n\t" | |||
| "add %2, 4, %2 \n\t" | |||
| "subcc %4, 8, %4 \n\t" | |||
| "bne 1b \n\t" | |||
| "add %3, 32, %3 \n\t" //delay slot | |||
| : "=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]), | |||
| "2" (src[2]+(y+srcSliceY)*srcStride[2]), "3" (dst[0]+(y+srcSliceY)*dstStride[0]), | |||
| "4" (c->dstW), | |||
| "5" (c->sparc_coeffs) | |||
| ); | |||
| } | |||
| return srcSliceH; | |||
| } | |||
| 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) | |||
| { | |||
| switch (format) { | |||
| case PIX_FMT_YUV420P: | |||
| return "yuv420p"; | |||
| case PIX_FMT_YUVA420P: | |||
| return "yuva420p"; | |||
| case PIX_FMT_YUYV422: | |||
| return "yuyv422"; | |||
| case PIX_FMT_RGB24: | |||
| return "rgb24"; | |||
| case PIX_FMT_BGR24: | |||
| return "bgr24"; | |||
| case PIX_FMT_YUV422P: | |||
| return "yuv422p"; | |||
| case PIX_FMT_YUV444P: | |||
| return "yuv444p"; | |||
| case PIX_FMT_RGB32: | |||
| return "rgb32"; | |||
| case PIX_FMT_YUV410P: | |||
| return "yuv410p"; | |||
| case PIX_FMT_YUV411P: | |||
| return "yuv411p"; | |||
| case PIX_FMT_RGB565: | |||
| return "rgb565"; | |||
| case PIX_FMT_RGB555: | |||
| return "rgb555"; | |||
| case PIX_FMT_GRAY16BE: | |||
| return "gray16be"; | |||
| case PIX_FMT_GRAY16LE: | |||
| return "gray16le"; | |||
| case PIX_FMT_GRAY8: | |||
| return "gray8"; | |||
| case PIX_FMT_MONOWHITE: | |||
| return "mono white"; | |||
| case PIX_FMT_MONOBLACK: | |||
| return "mono black"; | |||
| case PIX_FMT_PAL8: | |||
| return "Palette"; | |||
| case PIX_FMT_YUVJ420P: | |||
| return "yuvj420p"; | |||
| case PIX_FMT_YUVJ422P: | |||
| return "yuvj422p"; | |||
| case PIX_FMT_YUVJ444P: | |||
| return "yuvj444p"; | |||
| case PIX_FMT_XVMC_MPEG2_MC: | |||
| return "xvmc_mpeg2_mc"; | |||
| case PIX_FMT_XVMC_MPEG2_IDCT: | |||
| return "xvmc_mpeg2_idct"; | |||
| case PIX_FMT_UYVY422: | |||
| return "uyvy422"; | |||
| case PIX_FMT_UYYVYY411: | |||
| return "uyyvyy411"; | |||
| case PIX_FMT_RGB32_1: | |||
| return "rgb32x"; | |||
| case PIX_FMT_BGR32_1: | |||
| return "bgr32x"; | |||
| case PIX_FMT_BGR32: | |||
| return "bgr32"; | |||
| case PIX_FMT_BGR565: | |||
| return "bgr565"; | |||
| case PIX_FMT_BGR555: | |||
| return "bgr555"; | |||
| case PIX_FMT_BGR8: | |||
| return "bgr8"; | |||
| case PIX_FMT_BGR4: | |||
| return "bgr4"; | |||
| case PIX_FMT_BGR4_BYTE: | |||
| return "bgr4 byte"; | |||
| case PIX_FMT_RGB8: | |||
| return "rgb8"; | |||
| case PIX_FMT_RGB4: | |||
| return "rgb4"; | |||
| case PIX_FMT_RGB4_BYTE: | |||
| return "rgb4 byte"; | |||
| case PIX_FMT_RGB48BE: | |||
| return "rgb48be"; | |||
| case PIX_FMT_RGB48LE: | |||
| return "rgb48le"; | |||
| case PIX_FMT_NV12: | |||
| return "nv12"; | |||
| case PIX_FMT_NV21: | |||
| return "nv21"; | |||
| case PIX_FMT_YUV440P: | |||
| return "yuv440p"; | |||
| case PIX_FMT_VDPAU_H264: | |||
| return "vdpau_h264"; | |||
| case PIX_FMT_VDPAU_MPEG1: | |||
| return "vdpau_mpeg1"; | |||
| case PIX_FMT_VDPAU_MPEG2: | |||
| return "vdpau_mpeg2"; | |||
| case PIX_FMT_VDPAU_WMV3: | |||
| return "vdpau_wmv3"; | |||
| case PIX_FMT_VDPAU_VC1: | |||
| return "vdpau_vc1"; | |||
| case PIX_FMT_YUV420PLE: | |||
| return "yuv420ple"; | |||
| case PIX_FMT_YUV422PLE: | |||
| return "yuv422ple"; | |||
| case PIX_FMT_YUV444PLE: | |||
| return "yuv444ple"; | |||
| case PIX_FMT_YUV420PBE: | |||
| return "yuv420pbe"; | |||
| case PIX_FMT_YUV422PBE: | |||
| return "yuv422pbe"; | |||
| case PIX_FMT_YUV444PBE: | |||
| return "yuv444pbe"; | |||
| default: | |||
| return "Unknown format"; | |||
| case PIX_FMT_YUV420P: | |||
| return "yuv420p"; | |||
| case PIX_FMT_YUVA420P: | |||
| return "yuva420p"; | |||
| case PIX_FMT_YUYV422: | |||
| return "yuyv422"; | |||
| case PIX_FMT_RGB24: | |||
| return "rgb24"; | |||
| case PIX_FMT_BGR24: | |||
| return "bgr24"; | |||
| case PIX_FMT_YUV422P: | |||
| return "yuv422p"; | |||
| case PIX_FMT_YUV444P: | |||
| return "yuv444p"; | |||
| case PIX_FMT_RGB32: | |||
| return "rgb32"; | |||
| case PIX_FMT_YUV410P: | |||
| return "yuv410p"; | |||
| case PIX_FMT_YUV411P: | |||
| return "yuv411p"; | |||
| case PIX_FMT_RGB565: | |||
| return "rgb565"; | |||
| case PIX_FMT_RGB555: | |||
| return "rgb555"; | |||
| case PIX_FMT_GRAY16BE: | |||
| return "gray16be"; | |||
| case PIX_FMT_GRAY16LE: | |||
| return "gray16le"; | |||
| case PIX_FMT_GRAY8: | |||
| return "gray8"; | |||
| case PIX_FMT_MONOWHITE: | |||
| return "mono white"; | |||
| case PIX_FMT_MONOBLACK: | |||
| return "mono black"; | |||
| case PIX_FMT_PAL8: | |||
| return "Palette"; | |||
| case PIX_FMT_YUVJ420P: | |||
| return "yuvj420p"; | |||
| case PIX_FMT_YUVJ422P: | |||
| return "yuvj422p"; | |||
| case PIX_FMT_YUVJ444P: | |||
| return "yuvj444p"; | |||
| case PIX_FMT_XVMC_MPEG2_MC: | |||
| return "xvmc_mpeg2_mc"; | |||
| case PIX_FMT_XVMC_MPEG2_IDCT: | |||
| return "xvmc_mpeg2_idct"; | |||
| case PIX_FMT_UYVY422: | |||
| return "uyvy422"; | |||
| case PIX_FMT_UYYVYY411: | |||
| return "uyyvyy411"; | |||
| case PIX_FMT_RGB32_1: | |||
| return "rgb32x"; | |||
| case PIX_FMT_BGR32_1: | |||
| return "bgr32x"; | |||
| case PIX_FMT_BGR32: | |||
| return "bgr32"; | |||
| case PIX_FMT_BGR565: | |||
| return "bgr565"; | |||
| case PIX_FMT_BGR555: | |||
| return "bgr555"; | |||
| case PIX_FMT_BGR8: | |||
| return "bgr8"; | |||
| case PIX_FMT_BGR4: | |||
| return "bgr4"; | |||
| case PIX_FMT_BGR4_BYTE: | |||
| return "bgr4 byte"; | |||
| case PIX_FMT_RGB8: | |||
| return "rgb8"; | |||
| case PIX_FMT_RGB4: | |||
| return "rgb4"; | |||
| case PIX_FMT_RGB4_BYTE: | |||
| return "rgb4 byte"; | |||
| case PIX_FMT_RGB48BE: | |||
| return "rgb48be"; | |||
| case PIX_FMT_RGB48LE: | |||
| return "rgb48le"; | |||
| case PIX_FMT_NV12: | |||
| return "nv12"; | |||
| case PIX_FMT_NV21: | |||
| return "nv21"; | |||
| case PIX_FMT_YUV440P: | |||
| return "yuv440p"; | |||
| case PIX_FMT_VDPAU_H264: | |||
| return "vdpau_h264"; | |||
| case PIX_FMT_VDPAU_MPEG1: | |||
| return "vdpau_mpeg1"; | |||
| case PIX_FMT_VDPAU_MPEG2: | |||
| return "vdpau_mpeg2"; | |||
| case PIX_FMT_VDPAU_WMV3: | |||
| return "vdpau_wmv3"; | |||
| case PIX_FMT_VDPAU_VC1: | |||
| return "vdpau_vc1"; | |||
| case PIX_FMT_YUV420PLE: | |||
| return "yuv420ple"; | |||
| case PIX_FMT_YUV422PLE: | |||
| return "yuv422ple"; | |||
| case PIX_FMT_YUV444PLE: | |||
| return "yuv444ple"; | |||
| case PIX_FMT_YUV420PBE: | |||
| return "yuv420pbe"; | |||
| case PIX_FMT_YUV422PBE: | |||
| return "yuv422pbe"; | |||
| case PIX_FMT_YUV444PBE: | |||
| return "yuv444pbe"; | |||
| default: | |||
| 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) | |||
| { | |||
| // printf("%f %f %f %f %f\n", a,b,c,d,dist); | |||
| if (dist<=1.0) return ((d*dist + c)*dist + b)*dist +a; | |||
| else return getSplineCoeff( 0.0, | |||
| b+ 2.0*c + 3.0*d, | |||
| c + 3.0*d, | |||
| -b- 3.0*c - 6.0*d, | |||
| dist-1.0); | |||
| if (dist<=1.0) return ((d*dist + c)*dist + b)*dist +a; | |||
| else return getSplineCoeff( 0.0, | |||
| b+ 2.0*c + 3.0*d, | |||
| c + 3.0*d, | |||
| -b- 3.0*c - 6.0*d, | |||
| dist-1.0); | |||
| } | |||
| 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; | |||
| (*filterPos)[i]= xx; | |||
| //bilinear upscale / linear interpolate / area averaging | |||
| for (j=0; j<filterSize; j++) | |||
| { | |||
| int64_t coeff= fone - FFABS((xx<<16) - xDstInSrc)*(fone>>16); | |||
| if (coeff<0) coeff=0; | |||
| filter[i*filterSize + j]= coeff; | |||
| xx++; | |||
| } | |||
| //bilinear upscale / linear interpolate / area averaging | |||
| for (j=0; j<filterSize; j++) | |||
| { | |||
| int64_t coeff= fone - FFABS((xx<<16) - xDstInSrc)*(fone>>16); | |||
| if (coeff<0) coeff=0; | |||
| filter[i*filterSize + j]= coeff; | |||
| xx++; | |||
| } | |||
| xDstInSrc+= xInc; | |||
| } | |||
| } | |||
| @@ -2562,20 +2562,20 @@ int sws_getColorspaceDetails(SwsContext *c, int **inv_table, int *srcRange, int | |||
| static int handle_jpeg(enum PixelFormat *format) | |||
| { | |||
| switch (*format) { | |||
| case PIX_FMT_YUVJ420P: | |||
| *format = PIX_FMT_YUV420P; | |||
| return 1; | |||
| case PIX_FMT_YUVJ422P: | |||
| *format = PIX_FMT_YUV422P; | |||
| return 1; | |||
| case PIX_FMT_YUVJ444P: | |||
| *format = PIX_FMT_YUV444P; | |||
| return 1; | |||
| case PIX_FMT_YUVJ440P: | |||
| *format = PIX_FMT_YUV440P; | |||
| return 1; | |||
| default: | |||
| return 0; | |||
| case PIX_FMT_YUVJ420P: | |||
| *format = PIX_FMT_YUV420P; | |||
| return 1; | |||
| case PIX_FMT_YUVJ422P: | |||
| *format = PIX_FMT_YUV422P; | |||
| return 1; | |||
| case PIX_FMT_YUVJ444P: | |||
| *format = PIX_FMT_YUV444P; | |||
| return 1; | |||
| case PIX_FMT_YUVJ440P: | |||
| *format = PIX_FMT_YUV440P; | |||
| return 1; | |||
| default: | |||
| return 0; | |||
| } | |||
| } | |||
| @@ -2837,7 +2837,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d | |||
| if (c->swScale){ | |||
| if (flags&SWS_PRINT_INFO) | |||
| 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; | |||
| } | |||
| } | |||
| @@ -932,13 +932,13 @@ static inline void RENAME(yuv2yuvX)(SwsContext *c, const int16_t *lumFilter, con | |||
| } | |||
| #endif | |||
| #if COMPILE_TEMPLATE_ALTIVEC | |||
| yuv2yuvX_altivec_real(lumFilter, lumSrc, lumFilterSize, | |||
| chrFilter, chrSrc, chrFilterSize, | |||
| dest, uDest, vDest, dstW, chrDstW); | |||
| yuv2yuvX_altivec_real(lumFilter, lumSrc, lumFilterSize, | |||
| chrFilter, chrSrc, chrFilterSize, | |||
| dest, uDest, vDest, dstW, chrDstW); | |||
| #else //COMPILE_TEMPLATE_ALTIVEC | |||
| yuv2yuvXinC(lumFilter, lumSrc, lumFilterSize, | |||
| chrFilter, chrSrc, chrFilterSize, | |||
| alpSrc, dest, uDest, vDest, aDest, dstW, chrDstW); | |||
| yuv2yuvXinC(lumFilter, lumSrc, lumFilterSize, | |||
| chrFilter, chrSrc, chrFilterSize, | |||
| alpSrc, dest, uDest, vDest, aDest, dstW, chrDstW); | |||
| #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, | |||
| uint8_t *dest, uint8_t *uDest, int dstW, int chrDstW, int dstFormat) | |||
| { | |||
| yuv2nv12XinC(lumFilter, lumSrc, lumFilterSize, | |||
| chrFilter, chrSrc, chrFilterSize, | |||
| dest, uDest, dstW, chrDstW, dstFormat); | |||
| yuv2nv12XinC(lumFilter, lumSrc, lumFilterSize, | |||
| chrFilter, chrSrc, chrFilterSize, | |||
| dest, uDest, dstW, chrDstW, dstFormat); | |||
| } | |||
| 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 | |||
| match what's found in the body of ff_yuv2packedX_altivec() */ | |||
| if (!(c->flags & SWS_BITEXACT) && !c->alpPixBuf && | |||
| (c->dstFormat==PIX_FMT_ABGR || c->dstFormat==PIX_FMT_BGRA || | |||
| c->dstFormat==PIX_FMT_BGR24 || c->dstFormat==PIX_FMT_RGB24 || | |||
| c->dstFormat==PIX_FMT_RGBA || c->dstFormat==PIX_FMT_ARGB)) | |||
| (c->dstFormat==PIX_FMT_ABGR || c->dstFormat==PIX_FMT_BGRA || | |||
| c->dstFormat==PIX_FMT_BGR24 || c->dstFormat==PIX_FMT_RGB24 || | |||
| c->dstFormat==PIX_FMT_RGBA || c->dstFormat==PIX_FMT_ARGB)) | |||
| ff_yuv2packedX_altivec(c, lumFilter, lumSrc, lumFilterSize, | |||
| chrFilter, chrSrc, chrFilterSize, | |||
| dest, dstW, dstY); | |||
| @@ -1358,7 +1358,7 @@ static inline void RENAME(yuv2packed2)(SwsContext *c, const uint16_t *buf0, cons | |||
| } | |||
| } | |||
| #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 */ | |||
| 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) | |||
| "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" 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 | |||
| "mov %5, %%"REG_c" \n\t" // src | |||
| "mov %1, %%"REG_D" \n\t" // buf1 | |||
| @@ -2482,10 +2482,10 @@ CALL_MMX2_FILTER_CODE | |||
| PREFETCH" 32(%%"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) | |||
| "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; | |||
| #if COMPILE_TEMPLATE_MMX | |||
| int i; | |||
| if (flags & SWS_ACCURATE_RND){ | |||
| int s= APCK_SIZE / 8; | |||
| for (i=0; i<vLumFilterSize; i+=2){ | |||
| *(void**)&lumMmxFilter[s*i ]= lumSrcPtr[i ]; | |||
| *(void**)&lumMmxFilter[s*i+APCK_PTR2/4 ]= lumSrcPtr[i+(vLumFilterSize>1)]; | |||
| lumMmxFilter[s*i+APCK_COEF/4 ]= | |||
| lumMmxFilter[s*i+APCK_COEF/4+1]= vLumFilter[dstY*vLumFilterSize + i ] | |||
| + (vLumFilterSize>1 ? vLumFilter[dstY*vLumFilterSize + i + 1]<<16 : 0); | |||
| if (CONFIG_SWSCALE_ALPHA && alpPixBuf){ | |||
| *(void**)&alpMmxFilter[s*i ]= alpSrcPtr[i ]; | |||
| *(void**)&alpMmxFilter[s*i+APCK_PTR2/4 ]= alpSrcPtr[i+(vLumFilterSize>1)]; | |||
| alpMmxFilter[s*i+APCK_COEF/4 ]= | |||
| alpMmxFilter[s*i+APCK_COEF/4+1]= lumMmxFilter[s*i+APCK_COEF/4 ]; | |||
| if (flags & SWS_ACCURATE_RND){ | |||
| int s= APCK_SIZE / 8; | |||
| for (i=0; i<vLumFilterSize; i+=2){ | |||
| *(void**)&lumMmxFilter[s*i ]= lumSrcPtr[i ]; | |||
| *(void**)&lumMmxFilter[s*i+APCK_PTR2/4 ]= lumSrcPtr[i+(vLumFilterSize>1)]; | |||
| lumMmxFilter[s*i+APCK_COEF/4 ]= | |||
| lumMmxFilter[s*i+APCK_COEF/4+1]= vLumFilter[dstY*vLumFilterSize + i ] | |||
| + (vLumFilterSize>1 ? vLumFilter[dstY*vLumFilterSize + i + 1]<<16 : 0); | |||
| if (CONFIG_SWSCALE_ALPHA && alpPixBuf){ | |||
| *(void**)&alpMmxFilter[s*i ]= alpSrcPtr[i ]; | |||
| *(void**)&alpMmxFilter[s*i+APCK_PTR2/4 ]= alpSrcPtr[i+(vLumFilterSize>1)]; | |||
| alpMmxFilter[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+=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++) | |||
| { | |||
| 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 | |||
| if (dstFormat == PIX_FMT_NV12 || dstFormat == PIX_FMT_NV21){ | |||
| const int chrSkipMask= (1<<c->chrDstVSubSample)-1; | |||
| if (dstY&chrSkipMask) uDest= NULL; //FIXME split functions in lumi / chromi | |||
| c->yuv2nv12X(c, | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| dest, uDest, dstW, chrDstW, dstFormat); | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| dest, uDest, dstW, chrDstW, dstFormat); | |||
| } | |||
| 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)) | |||
| { | |||
| yuv2yuvX16inC( | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, (uint16_t *) dest, (uint16_t *) uDest, (uint16_t *) vDest, (uint16_t *) aDest, dstW, chrDstW, | |||
| dstFormat); | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, (uint16_t *) dest, (uint16_t *) uDest, (uint16_t *) vDest, (uint16_t *) aDest, dstW, chrDstW, | |||
| dstFormat); | |||
| } | |||
| else | |||
| 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 | |||
| { | |||
| c->yuv2yuvX(c, | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, uDest, vDest, aDest, dstW, chrDstW); | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, uDest, vDest, aDest, dstW, chrDstW); | |||
| } | |||
| } | |||
| else | |||
| @@ -2846,13 +2846,13 @@ static int RENAME(swScale)(SwsContext *c, uint8_t* src[], int srcStride[], int s | |||
| int chrAlpha= vChrFilter[2*dstY+1]; | |||
| if(flags & SWS_FULL_CHR_H_INT){ | |||
| yuv2rgbXinC_full(c, //FIXME write a packed1_full function | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| }else{ | |||
| c->yuv2packed1(c, *lumSrcPtr, *chrSrcPtr, *(chrSrcPtr+1), | |||
| alpPixBuf ? *alpSrcPtr : NULL, | |||
| dest, dstW, chrAlpha, dstFormat, flags, dstY); | |||
| alpPixBuf ? *alpSrcPtr : NULL, | |||
| dest, dstW, chrAlpha, dstFormat, flags, dstY); | |||
| } | |||
| } | |||
| 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; | |||
| if(flags & SWS_FULL_CHR_H_INT){ | |||
| yuv2rgbXinC_full(c, //FIXME write a packed2_full function | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| }else{ | |||
| c->yuv2packed2(c, *lumSrcPtr, *(lumSrcPtr+1), *chrSrcPtr, *(chrSrcPtr+1), | |||
| alpPixBuf ? *alpSrcPtr : NULL, alpPixBuf ? *(alpSrcPtr+1) : NULL, | |||
| dest, dstW, lumAlpha, chrAlpha, dstY); | |||
| alpPixBuf ? *alpSrcPtr : NULL, alpPixBuf ? *(alpSrcPtr+1) : NULL, | |||
| dest, dstW, lumAlpha, chrAlpha, dstY); | |||
| } | |||
| } | |||
| else //general RGB | |||
| { | |||
| if(flags & SWS_FULL_CHR_H_INT){ | |||
| yuv2rgbXinC_full(c, | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| }else{ | |||
| c->yuv2packedX(c, | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| 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; | |||
| if (dstY&chrSkipMask) uDest= NULL; //FIXME split functions in lumi / chromi | |||
| yuv2nv12XinC( | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| dest, uDest, dstW, chrDstW, dstFormat); | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| dest, uDest, dstW, chrDstW, dstFormat); | |||
| } | |||
| 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)) | |||
| { | |||
| yuv2yuvX16inC( | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, (uint16_t *) dest, (uint16_t *) uDest, (uint16_t *) vDest, (uint16_t *) aDest, dstW, chrDstW, | |||
| dstFormat); | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, (uint16_t *) dest, (uint16_t *) uDest, (uint16_t *) vDest, (uint16_t *) aDest, dstW, chrDstW, | |||
| dstFormat); | |||
| } | |||
| else | |||
| { | |||
| yuv2yuvXinC( | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, uDest, vDest, aDest, dstW, chrDstW); | |||
| vLumFilter+dstY*vLumFilterSize , lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+chrDstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, uDest, vDest, aDest, dstW, chrDstW); | |||
| } | |||
| } | |||
| 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); | |||
| if(flags & SWS_FULL_CHR_H_INT){ | |||
| yuv2rgbXinC_full(c, | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| }else{ | |||
| yuv2packedXinC(c, | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| vLumFilter+dstY*vLumFilterSize, lumSrcPtr, vLumFilterSize, | |||
| vChrFilter+dstY*vChrFilterSize, chrSrcPtr, vChrFilterSize, | |||
| alpSrcPtr, dest, dstW, dstY); | |||
| } | |||
| } | |||
| } | |||