From ad164e04ee0330426917f00275fccc2203aff653 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 28 Jun 2007 11:24:12 +0000 Subject: Get rid of my_memcpy_pic code duplication in many filters. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23686 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/fastmemcpy.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'libvo') diff --git a/libvo/fastmemcpy.h b/libvo/fastmemcpy.h index 295efd8077..5c8b7add64 100644 --- a/libvo/fastmemcpy.h +++ b/libvo/fastmemcpy.h @@ -68,12 +68,21 @@ static inline void * mem2agpcpy_pic(void * dst, const void * src, int bytesPerLi return retval; } -static inline void * memcpy_pic(void * dst, const void * src, int bytesPerLine, int height, int dstStride, int srcStride) +#define memcpy_pic(d, s, b, h, ds, ss) memcpy_pic2(d, s, b, h, ds, ss, 0) +#define my_memcpy_pic(d, s, b, h, ds, ss) memcpy_pic2(d, s, b, h, ds, ss, 1) + +/** + * \param limit2width always skip data between end of line and start of next + * instead of copying the full block when strides are the same + */ +static inline void * memcpy_pic2(void * dst, const void * src, + int bytesPerLine, int height, + int dstStride, int srcStride, int limit2width) { int i; void *retval=dst; - if(dstStride == srcStride) + if(!limit2width && dstStride == srcStride) { if (srcStride < 0) { src = (uint8_t*)src + (height-1)*srcStride; -- cgit v1.2.3