Dominique Leuenberger
4df09026ce
Fixes SLE11 in a more acceptable way. Fixes packman build. I hope it doesn't mess up videolan because I have no way of testing it:/ OBS-URL: https://build.opensuse.org/request/show/288829 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/vlc?expand=0&rev=110
120 lines
3.6 KiB
Diff
120 lines
3.6 KiB
Diff
--- modules/video_filter/deinterlace/merge.c.orig 2015-03-04 07:55:02.021482260 +0100
|
|
+++ modules/video_filter/deinterlace/merge.c 2015-03-04 07:56:33.975885612 +0100
|
|
@@ -68,116 +68,6 @@
|
|
*p_dest++ = ( *p_s1++ + *p_s2++ ) >> 1;
|
|
}
|
|
|
|
-#if defined(CAN_COMPILE_MMXEXT)
|
|
-VLC_MMX
|
|
-void MergeMMXEXT( void *_p_dest, const void *_p_s1, const void *_p_s2,
|
|
- size_t i_bytes )
|
|
-{
|
|
- uint8_t *p_dest = _p_dest;
|
|
- const uint8_t *p_s1 = _p_s1;
|
|
- const uint8_t *p_s2 = _p_s2;
|
|
-
|
|
- for( ; i_bytes >= 8; i_bytes -= 8 )
|
|
- {
|
|
- __asm__ __volatile__( "movq %2,%%mm1;"
|
|
- "pavgb %1, %%mm1;"
|
|
- "movq %%mm1, %0" :"=m" (*p_dest):
|
|
- "m" (*p_s1),
|
|
- "m" (*p_s2) : "mm1" );
|
|
- p_dest += 8;
|
|
- p_s1 += 8;
|
|
- p_s2 += 8;
|
|
- }
|
|
-
|
|
- for( ; i_bytes > 0; i_bytes-- )
|
|
- *p_dest++ = ( *p_s1++ + *p_s2++ ) >> 1;
|
|
-}
|
|
-#endif
|
|
-
|
|
-#if defined(CAN_COMPILE_3DNOW)
|
|
-VLC_MMX
|
|
-void Merge3DNow( void *_p_dest, const void *_p_s1, const void *_p_s2,
|
|
- size_t i_bytes )
|
|
-{
|
|
- uint8_t *p_dest = _p_dest;
|
|
- const uint8_t *p_s1 = _p_s1;
|
|
- const uint8_t *p_s2 = _p_s2;
|
|
-
|
|
- for( ; i_bytes >= 8; i_bytes -= 8 )
|
|
- {
|
|
- __asm__ __volatile__( "movq %2,%%mm1;"
|
|
- "pavgusb %1, %%mm1;"
|
|
- "movq %%mm1, %0" :"=m" (*p_dest):
|
|
- "m" (*p_s1),
|
|
- "m" (*p_s2) : "mm1" );
|
|
- p_dest += 8;
|
|
- p_s1 += 8;
|
|
- p_s2 += 8;
|
|
- }
|
|
-
|
|
- for( ; i_bytes > 0; i_bytes-- )
|
|
- *p_dest++ = ( *p_s1++ + *p_s2++ ) >> 1;
|
|
-}
|
|
-#endif
|
|
-
|
|
-#if defined(CAN_COMPILE_SSE)
|
|
-VLC_SSE
|
|
-void Merge8BitSSE2( void *_p_dest, const void *_p_s1, const void *_p_s2,
|
|
- size_t i_bytes )
|
|
-{
|
|
- uint8_t *p_dest = _p_dest;
|
|
- const uint8_t *p_s1 = _p_s1;
|
|
- const uint8_t *p_s2 = _p_s2;
|
|
-
|
|
- for( ; i_bytes > 0 && ((uintptr_t)p_s1 & 15); i_bytes-- )
|
|
- *p_dest++ = ( *p_s1++ + *p_s2++ ) >> 1;
|
|
-
|
|
- for( ; i_bytes >= 16; i_bytes -= 16 )
|
|
- {
|
|
- __asm__ __volatile__( "movdqu %2,%%xmm1;"
|
|
- "pavgb %1, %%xmm1;"
|
|
- "movdqu %%xmm1, %0" :"=m" (*p_dest):
|
|
- "m" (*p_s1),
|
|
- "m" (*p_s2) : "xmm1" );
|
|
- p_dest += 16;
|
|
- p_s1 += 16;
|
|
- p_s2 += 16;
|
|
- }
|
|
-
|
|
- for( ; i_bytes > 0; i_bytes-- )
|
|
- *p_dest++ = ( *p_s1++ + *p_s2++ ) >> 1;
|
|
-}
|
|
-
|
|
-VLC_SSE
|
|
-void Merge16BitSSE2( void *_p_dest, const void *_p_s1, const void *_p_s2,
|
|
- size_t i_bytes )
|
|
-{
|
|
- uint16_t *p_dest = _p_dest;
|
|
- const uint16_t *p_s1 = _p_s1;
|
|
- const uint16_t *p_s2 = _p_s2;
|
|
-
|
|
- size_t i_words = i_bytes / 2;
|
|
- for( ; i_words > 0 && ((uintptr_t)p_s1 & 15); i_words-- )
|
|
- *p_dest++ = ( *p_s1++ + *p_s2++ ) >> 1;
|
|
-
|
|
- for( ; i_words >= 8; i_words -= 8 )
|
|
- {
|
|
- __asm__ __volatile__( "movdqu %2,%%xmm1;"
|
|
- "pavgw %1, %%xmm1;"
|
|
- "movdqu %%xmm1, %0" :"=m" (*p_dest):
|
|
- "m" (*p_s1),
|
|
- "m" (*p_s2) : "xmm1" );
|
|
- p_dest += 8;
|
|
- p_s1 += 8;
|
|
- p_s2 += 8;
|
|
- }
|
|
-
|
|
- for( ; i_words > 0; i_words-- )
|
|
- *p_dest++ = ( *p_s1++ + *p_s2++ ) >> 1;
|
|
-}
|
|
-
|
|
-#endif
|
|
-
|
|
#ifdef CAN_COMPILE_C_ALTIVEC
|
|
void MergeAltivec( void *_p_dest, const void *_p_s1,
|
|
const void *_p_s2, size_t i_bytes )
|