summaryrefslogtreecommitdiffstats
path: root/libswscale/swscale_internal.h
diff options
context:
space:
mode:
authorramiro <ramiro@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-04-04 22:45:02 +0000
committerramiro <ramiro@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-04-04 22:45:02 +0000
commit9442096523f977f22dd33998ca4c98dc597bb580 (patch)
tree33aa5bbf6c436926bbd8a453ed6b49a72169900e /libswscale/swscale_internal.h
parentf89e6c23345e3c93f17752c3e3730868e3da1601 (diff)
downloadmpv-9442096523f977f22dd33998ca4c98dc597bb580.tar.bz2
mpv-9442096523f977f22dd33998ca4c98dc597bb580.tar.xz
swscale: Use function pointers for swScale functions.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29145 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libswscale/swscale_internal.h')
-rw-r--r--libswscale/swscale_internal.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index 785c00aa3c..070161900b 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -214,6 +214,57 @@ typedef struct SwsContext{
uint64_t sparc_coeffs[10] __attribute__((aligned(8)));
#endif
+ /* function pointers for swScale() */
+ void (*yuv2nv12X )(struct SwsContext *c,
+ const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize,
+ const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
+ uint8_t *dest, uint8_t *uDest,
+ int dstW, int chrDstW, int dstFormat);
+ void (*yuv2yuv1 )(struct SwsContext *c,
+ const int16_t *lumSrc, const int16_t *chrSrc, const int16_t *alpSrc,
+ uint8_t *dest,
+ uint8_t *uDest, uint8_t *vDest, uint8_t *aDest,
+ long dstW, long chrDstW);
+ void (*yuv2yuvX )(struct SwsContext *c,
+ const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize,
+ const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
+ const int16_t **alpSrc,
+ uint8_t *dest,
+ uint8_t *uDest, uint8_t *vDest, uint8_t *aDest,
+ long dstW, long chrDstW);
+ void (*yuv2packed1)(struct SwsContext *c,
+ const uint16_t *buf0,
+ const uint16_t *uvbuf0, const uint16_t *uvbuf1,
+ const uint16_t *abuf0,
+ uint8_t *dest,
+ int dstW, int uvalpha, int dstFormat, int flags, int y);
+ void (*yuv2packed2)(struct SwsContext *c,
+ const uint16_t *buf0, const uint16_t *buf1,
+ const uint16_t *uvbuf0, const uint16_t *uvbuf1,
+ const uint16_t *abuf0, const uint16_t *abuf1,
+ uint8_t *dest,
+ int dstW, int yalpha, int uvalpha, int y);
+ void (*yuv2packedX)(struct SwsContext *c,
+ const int16_t *lumFilter, const int16_t **lumSrc, int lumFilterSize,
+ const int16_t *chrFilter, const int16_t **chrSrc, int chrFilterSize,
+ const int16_t **alpSrc, uint8_t *dest,
+ long dstW, long dstY);
+
+ void (*hyscale_internal)(uint8_t *dst, const uint8_t *src,
+ long width, uint32_t *pal);
+ void (*hcscale_internal)(uint8_t *dstU, uint8_t *dstV,
+ const uint8_t *src1, const uint8_t *src2,
+ long width, uint32_t *pal);
+ void (*hyscale_fast)(struct SwsContext *c,
+ int16_t *dst, int dstWidth,
+ const uint8_t *src, int srcW, int xInc);
+ void (*hcscale_fast)(struct SwsContext *c,
+ int16_t *dst, int dstWidth,
+ const uint8_t *src1, const uint8_t *src2, int srcW, int xInc);
+
+ void (*hScale)(int16_t *dst, int dstW, const uint8_t *src, int srcW,
+ int xInc, const int16_t *filter, const int16_t *filterPos, long filterSize);
+
} SwsContext;
//FIXME check init (where 0)