[FFmpeg-devel] [PATCH]Remove g6Dither from libswscale
Carl Eugen Hoyos
cehoyos
Sat Oct 4 17:06:14 CEST 2008
Hi!
Attached patch tries to get rid of the variable g6Dither in libswscale.
Please comment, Carl Eugen
-------------- next part --------------
Index: yuv2rgb.c
===================================================================
--- yuv2rgb.c (Revision 27709)
+++ yuv2rgb.c (Arbeitskopie)
@@ -58,7 +58,6 @@
// not knowing that these are read in the ASM block.
static volatile uint64_t attribute_used __attribute__((aligned(8))) b5Dither;
static volatile uint64_t attribute_used __attribute__((aligned(8))) g5Dither;
-static volatile uint64_t attribute_used __attribute__((aligned(8))) g6Dither;
static volatile uint64_t attribute_used __attribute__((aligned(8))) r5Dither;
#undef HAVE_MMX
Index: swscale.c
===================================================================
--- swscale.c (Revision 27709)
+++ swscale.c (Arbeitskopie)
@@ -207,7 +207,6 @@
static volatile uint64_t attribute_used __attribute__((aligned(8))) b5Dither;
static volatile uint64_t attribute_used __attribute__((aligned(8))) g5Dither;
-static volatile uint64_t attribute_used __attribute__((aligned(8))) g6Dither;
static volatile uint64_t attribute_used __attribute__((aligned(8))) r5Dither;
const DECLARE_ALIGNED(8, uint64_t, ff_dither4[2]) = {
Index: yuv2rgb_template.c
===================================================================
--- yuv2rgb_template.c (Revision 27709)
+++ yuv2rgb_template.c (Arbeitskopie)
@@ -144,8 +144,7 @@
long index= -h_size/2;
b5Dither= ff_dither8[y&1];
- g6Dither= ff_dither4[y&1];
- g5Dither= ff_dither8[y&1];
+ g5Dither= ff_dither4[y&1];
r5Dither= ff_dither8[(y+1)&1];
/* This MMX assembly code deals with a SINGLE scan line at a time,
* it converts 8 pixels in each iteration. */
@@ -166,7 +165,7 @@
#ifdef DITHER1XBPP
"paddusb "MANGLE(b5Dither)", %%mm0;"
- "paddusb "MANGLE(g6Dither)", %%mm2;"
+ "paddusb "MANGLE(g5Dither)", %%mm2;"
"paddusb "MANGLE(r5Dither)", %%mm1;"
#endif
/* mask unneeded bits off */
@@ -239,7 +238,6 @@
long index= -h_size/2;
b5Dither= ff_dither8[y&1];
- g6Dither= ff_dither4[y&1];
g5Dither= ff_dither8[y&1];
r5Dither= ff_dither8[(y+1)&1];
/* This MMX assembly code deals with a SINGLE scan line at a time,
Index: swscale_template.c
===================================================================
--- swscale_template.c (Revision 27709)
+++ swscale_template.c (Arbeitskopie)
@@ -1105,7 +1105,7 @@
/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */
#ifdef DITHER1XBPP
"paddusb "MANGLE(b5Dither)", %%mm2\n\t"
- "paddusb "MANGLE(g6Dither)", %%mm4\n\t"
+ "paddusb "MANGLE(g5Dither)", %%mm4\n\t"
"paddusb "MANGLE(r5Dither)", %%mm5\n\t"
#endif
@@ -1165,7 +1165,7 @@
/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */
#ifdef DITHER1XBPP
"paddusb "MANGLE(b5Dither)", %%mm2 \n\t"
- "paddusb "MANGLE(g6Dither)", %%mm4 \n\t"
+ "paddusb "MANGLE(g5Dither)", %%mm4 \n\t"
"paddusb "MANGLE(r5Dither)", %%mm5 \n\t"
#endif
@@ -1330,7 +1330,7 @@
FULL_YSCALEYUV2RGB
#ifdef DITHER1XBPP
- "paddusb "MANGLE(g6Dither)", %%mm1 \n\t"
+ "paddusb "MANGLE(g5Dither)", %%mm1 \n\t"
"paddusb "MANGLE(r5Dither)", %%mm0 \n\t"
"paddusb "MANGLE(b5Dither)", %%mm3 \n\t"
#endif
@@ -1490,7 +1490,7 @@
/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */
#ifdef DITHER1XBPP
"paddusb "MANGLE(b5Dither)", %%mm2 \n\t"
- "paddusb "MANGLE(g6Dither)", %%mm4 \n\t"
+ "paddusb "MANGLE(g5Dither)", %%mm4 \n\t"
"paddusb "MANGLE(r5Dither)", %%mm5 \n\t"
#endif
@@ -1602,7 +1602,7 @@
/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */
#ifdef DITHER1XBPP
"paddusb "MANGLE(b5Dither)", %%mm2 \n\t"
- "paddusb "MANGLE(g6Dither)", %%mm4 \n\t"
+ "paddusb "MANGLE(g5Dither)", %%mm4 \n\t"
"paddusb "MANGLE(r5Dither)", %%mm5 \n\t"
#endif
@@ -1691,7 +1691,7 @@
/* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */
#ifdef DITHER1XBPP
"paddusb "MANGLE(b5Dither)", %%mm2 \n\t"
- "paddusb "MANGLE(g6Dither)", %%mm4 \n\t"
+ "paddusb "MANGLE(g5Dither)", %%mm4 \n\t"
"paddusb "MANGLE(r5Dither)", %%mm5 \n\t"
#endif
@@ -3092,8 +3092,10 @@
#ifdef HAVE_MMX
b5Dither= ff_dither8[dstY&1];
- g6Dither= ff_dither4[dstY&1];
- g5Dither= ff_dither8[dstY&1];
+ if (c->dstFormat == PIX_FMT_RGB555 || c->dstFormat == PIX_FMT_BGR555)
+ g5Dither= ff_dither8[dstY&1];
+ else
+ g5Dither= ff_dither4[dstY&1];
r5Dither= ff_dither8[(dstY+1)&1];
#endif
if (dstY < dstH-2)
More information about the ffmpeg-devel
mailing list