@ -626,13 +626,13 @@ void ff_yuv2rgb_init_tables_altivec(SwsContext *c, const int inv_table[4], int b
}
void
static av_always_inline void
ff_yuv2packedX_altivec ( SwsContext * c , const int16_t * lumFilter ,
const int16_t * * lumSrc , int lumFilterSize ,
const int16_t * chrFilter , const int16_t * * chrUSrc ,
const int16_t * * chrVSrc , int chrFilterSize ,
const int16_t * * alpSrc , uint8_t * dest ,
int dstW , int dstY )
int dstW , int dstY , enum PixelFormat target )
{
int i , j ;
vector signed short X , X0 , X1 , Y0 , U0 , V0 , Y1 , U1 , V1 , U , V ;
@ -706,7 +706,7 @@ ff_yuv2packedX_altivec(SwsContext *c, const int16_t *lumFilter,
G = vec_packclp ( G0 , G1 ) ;
B = vec_packclp ( B0 , B1 ) ;
switch ( c - > dstForma t) {
switch ( targe t) {
case PIX_FMT_ABGR : out_abgr ( R , G , B , out ) ; break ;
case PIX_FMT_BGRA : out_bgra ( R , G , B , out ) ; break ;
case PIX_FMT_RGBA : out_rgba ( R , G , B , out ) ; break ;
@ -785,7 +785,7 @@ ff_yuv2packedX_altivec(SwsContext *c, const int16_t *lumFilter,
B = vec_packclp ( B0 , B1 ) ;
nout = ( vector unsigned char * ) scratch ;
switch ( c - > dstForma t) {
switch ( targe t) {
case PIX_FMT_ABGR : out_abgr ( R , G , B , nout ) ; break ;
case PIX_FMT_BGRA : out_bgra ( R , G , B , nout ) ; break ;
case PIX_FMT_RGBA : out_rgba ( R , G , B , nout ) ; break ;
@ -803,3 +803,23 @@ ff_yuv2packedX_altivec(SwsContext *c, const int16_t *lumFilter,
}
}
# define YUV2PACKEDX_WRAPPER(suffix, pixfmt) \
void ff_yuv2 # # suffix # # _X_altivec ( SwsContext * c , const int16_t * lumFilter , \
const int16_t * * lumSrc , int lumFilterSize , \
const int16_t * chrFilter , const int16_t * * chrUSrc , \
const int16_t * * chrVSrc , int chrFilterSize , \
const int16_t * * alpSrc , uint8_t * dest , \
int dstW , int dstY ) \
{ \
ff_yuv2packedX_altivec ( c , lumFilter , lumSrc , lumFilterSize , \
chrFilter , chrUSrc , chrVSrc , chrFilterSize , \
alpSrc , dest , dstW , dstY , pixfmt ) ; \
}
YUV2PACKEDX_WRAPPER ( abgr , PIX_FMT_ABGR ) ;
YUV2PACKEDX_WRAPPER ( bgra , PIX_FMT_BGRA ) ;
YUV2PACKEDX_WRAPPER ( argb , PIX_FMT_ARGB ) ;
YUV2PACKEDX_WRAPPER ( rgba , PIX_FMT_RGBA ) ;
YUV2PACKEDX_WRAPPER ( rgb24 , PIX_FMT_RGB24 ) ;
YUV2PACKEDX_WRAPPER ( bgr24 , PIX_FMT_BGR24 ) ;