* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <inttypes.h>
+#include "config.h"
+#include "libswscale/swscale.h"
+#include "libswscale/swscale_internal.h"
+#include "libavutil/cpu.h"
+#include "yuv2rgb_altivec.h"
+
#define vzero vec_splat_s32(0)
static inline void
}
}
-static inline void hScale_altivec_real(int16_t *dst, int dstW,
- const uint8_t *src, int srcW,
- int xInc, const int16_t *filter,
- const int16_t *filterPos, int filterSize)
+static void hScale_altivec_real(int16_t *dst, int dstW,
+ const uint8_t *src, int srcW,
+ int xInc, const int16_t *filter,
+ const int16_t *filterPos, int filterSize)
{
register int i;
DECLARE_ALIGNED(16, int, tempo)[4];
}
}
-static void RENAME(sws_init_swScale)(SwsContext *c)
+void ff_sws_init_swScale_altivec(SwsContext *c)
{
+ if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC))
+ return;
+
c->yuv2yuvX = yuv2yuvX_altivec_real;
/* The following list of supported dstFormat values should