diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-06-28 11:24:12 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-06-28 11:24:12 +0000 |
commit | ad164e04ee0330426917f00275fccc2203aff653 (patch) | |
tree | 7eaba8b9a79e9ec5f54daf5a7ccdd41d2b26001e /libvo | |
parent | 78fb17276c503df51c7002bdff420bc075ebdc8e (diff) | |
download | mpv-ad164e04ee0330426917f00275fccc2203aff653.tar.bz2 mpv-ad164e04ee0330426917f00275fccc2203aff653.tar.xz |
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
Diffstat (limited to 'libvo')
-rw-r--r-- | libvo/fastmemcpy.h | 13 |
1 files changed, 11 insertions, 2 deletions
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; |