Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:wolfi323:branches:multimedia:libs
vlc
vlc-2.2.0-fix_deinterlace_mmx.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File vlc-2.2.0-fix_deinterlace_mmx.patch of Package vlc
--- 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 )
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor