Mercurial > mplayer.hg
view libvo/fastmemcpy.h @ 10252:d275152390ee
I've found some time to implement the encoding support for the new
DivX API. Now it's possible to play and encode movies with the
latest DivX release.
One thing that doesn't work is the new Video Buffer Verifier (VBV)
multipass encoding. The encoder segfaults. Maybe it just isn't
supported with the standard profile of the released binary encoder.
Andreas Hess <jaska@gmx.net>
author | arpi |
---|---|
date | Fri, 06 Jun 2003 19:57:37 +0000 |
parents | 23ba417cf64b |
children | ac3fd2ff2561 |
line wrap: on
line source
#ifndef __MPLAYER_MEMCPY #define __MPLAYER_MEMCPY 1 #include "../config.h" #ifdef USE_FASTMEMCPY #if defined(HAVE_MMX) || defined(HAVE_MMX2) || defined(HAVE_3DNOW) \ /* || defined(HAVE_SSE) || defined(HAVE_SSE2) */ #include <stddef.h> extern void * fast_memcpy(void * to, const void * from, size_t len); extern void * mem2agpcpy(void * to, const void * from, size_t len); #define memcpy(a,b,c) fast_memcpy(a,b,c) #else /* HAVE_MMX/MMX2/3DNOW/SSE/SSE2 */ #define mem2agpcpy(a,b,c) memcpy(a,b,c) #endif #else /* USE_FASTMEMCPY */ #define mem2agpcpy(a,b,c) memcpy(a,b,c) #endif static inline void * mem2agpcpy_pic(void * dst, void * src, int bytesPerLine, int height, int dstStride, int srcStride) { int i; void *retval=dst; if(dstStride == srcStride) mem2agpcpy(dst, src, srcStride*height); else { for(i=0; i<height; i++) { mem2agpcpy(dst, src, bytesPerLine); src+= srcStride; dst+= dstStride; } } return retval; } static inline void * memcpy_pic(void * dst, void * src, int bytesPerLine, int height, int dstStride, int srcStride) { int i; void *retval=dst; if(dstStride == srcStride) memcpy(dst, src, srcStride*height); else { for(i=0; i<height; i++) { memcpy(dst, src, bytesPerLine); src+= srcStride; dst+= dstStride; } } return retval; } #endif