src+= 4*stride;
static inline void deInterlaceMedian(uint8_t src[], int stride){#ifdef HAVE_MMX#ifdef HAVE_MMX2	asm volatile(		"leal (%0, %1), %%eax				\n\t"		"leal (%%eax, %1, 4), %%ebx			\n\t"//	0	1	2	3	4	5	6	7	8	9//	%0	eax	eax+%1	eax+2%1	%0+4%1	ebx	ebx+%1	ebx+2%1	%0+8%1	ebx+4%1		"movq (%0), %%mm0				\n\t" //		"movq (%%eax, %1), %%mm2			\n\t" //		"movq (%%eax), %%mm1				\n\t" //		"movq %%mm0, %%mm3				\n\t"		"pmaxub %%mm1, %%mm0				\n\t" //		"pminub %%mm3, %%mm1				\n\t" //		"pmaxub %%mm2, %%mm1				\n\t" //		"pminub %%mm1, %%mm0				\n\t"		"movq %%mm0, (%%eax)				\n\t"		"movq (%0, %1, 4), %%mm0			\n\t" //		"movq (%%eax, %1, 2), %%mm1			\n\t" //		"movq %%mm2, %%mm3				\n\t"		"pmaxub %%mm1, %%mm2				\n\t" //		"pminub %%mm3, %%mm1				\n\t" //		"pmaxub %%mm0, %%mm1				\n\t" //		"pminub %%mm1, %%mm2				\n\t"		"movq %%mm2, (%%eax, %1, 2)			\n\t"		"movq (%%ebx), %%mm2				\n\t" //		"movq (%%ebx, %1), %%mm1			\n\t" //		"movq %%mm2, %%mm3				\n\t"		"pmaxub %%mm0, %%mm2				\n\t" //		"pminub %%mm3, %%mm0				\n\t" //		"pmaxub %%mm1, %%mm0				\n\t" //		"pminub %%mm0, %%mm2				\n\t"		"movq %%mm2, (%%ebx)				\n\t"		"movq (%%ebx, %1, 2), %%mm2			\n\t" //		"movq (%0, %1, 8), %%mm0			\n\t" //		"movq %%mm2, %%mm3				\n\t"		"pmaxub %%mm0, %%mm2				\n\t" //		"pminub %%mm3, %%mm0				\n\t" //		"pmaxub %%mm1, %%mm0				\n\t" //		"pminub %%mm0, %%mm2				\n\t"		"movq %%mm2, (%%ebx, %1, 2)			\n\t"		: : "r" (src), "r" (stride)		: "%eax", "%ebx"	);#else // MMX without MMX2	asm volatile(		"leal (%0, %1), %%eax				\n\t"		"leal (%%eax, %1, 4), %%ebx			\n\t"//	0	1	2	3	4	5	6	7	8	9//	%0	eax	eax+%1	eax+2%1	%0+4%1	ebx	ebx+%1	ebx+2%1	%0+8%1	ebx+4%1		"pxor %%mm7, %%mm7				\n\t"#define MEDIAN(a,b,c)\		"movq " #a ", %%mm0				\n\t"\		"movq " #b ", %%mm2				\n\t"\		"movq " #c ", %%mm1				\n\t"\		"movq %%mm0, %%mm3				\n\t"\		"movq %%mm1, %%mm4				\n\t"\		"movq %%mm2, %%mm5				\n\t"\		"psubusb %%mm1, %%mm3				\n\t"\		"psubusb %%mm2, %%mm4				\n\t"\		"psubusb %%mm0, %%mm5				\n\t"\		"pcmpeqb %%mm7, %%mm3				\n\t"\		"pcmpeqb %%mm7, %%mm4				\n\t"\		"pcmpeqb %%mm7, %%mm5				\n\t"\		"movq %%mm3, %%mm6				\n\t"\		"pxor %%mm4, %%mm3				\n\t"\		"pxor %%mm5, %%mm4				\n\t"\		"pxor %%mm6, %%mm5				\n\t"\		"por %%mm3, %%mm1				\n\t"\		"por %%mm4, %%mm2				\n\t"\		"por %%mm5, %%mm0				\n\t"\		"pand %%mm2, %%mm0				\n\t"\		"pand %%mm1, %%mm0				\n\t"\		"movq %%mm0, " #b "				\n\t"MEDIAN((%0), (%%eax), (%%eax, %1))MEDIAN((%%eax, %1), (%%eax, %1, 2), (%0, %1, 4))MEDIAN((%0, %1, 4), (%%ebx), (%%ebx, %1))MEDIAN((%%ebx, %1), (%%ebx, %1, 2), (%0, %1, 8))		: : "r" (src), "r" (stride)		: "%eax", "%ebx"	);#endif // MMX#else	//FIXME	int x;	for(x=0; x<8; x++)	{		src[0       ] = (src[0       ] + 2*src[stride  ] + src[stride*2])>>2;		src[stride  ] = (src[stride  ] + 2*src[stride*2] + src[stride*3])>>2;		src[stride*2] = (src[stride*2] + 2*src[stride*3] + src[stride*4])>>2;		src[stride*3] = (src[stride*3] + 2*src[stride*4] + src[stride*5])>>2;		src[stride*4] = (src[stride*4] + 2*src[stride*5] + src[stride*6])>>2;		src[stride*5] = (src[stride*5] + 2*src[stride*6] + src[stride*7])>>2;		src[stride*6] = (src[stride*6] + 2*src[stride*7] + src[stride*8])>>2;		src[stride*7] = (src[stride*7] + 2*src[stride*8] + src[stride*9])>>2;		src++;	}#endif}