Commit 14cabd40 authored by James Klicman's avatar James Klicman Committed by Michael Niedermayer

AltiVec optimized fdct patch by (James Klicman <james at klicman dot org>)

Originally committed as revision 2439 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 5c69a4fd
...@@ -143,7 +143,7 @@ endif ...@@ -143,7 +143,7 @@ endif
ifeq ($(TARGET_ALTIVEC),yes) ifeq ($(TARGET_ALTIVEC),yes)
OBJS += ppc/dsputil_altivec.o ppc/mpegvideo_altivec.o ppc/idct_altivec.o \ OBJS += ppc/dsputil_altivec.o ppc/mpegvideo_altivec.o ppc/idct_altivec.o \
ppc/fft_altivec.o ppc/gmc_altivec.o ppc/fft_altivec.o ppc/gmc_altivec.o ppc/fdct_altivec.o
endif endif
ifeq ($(TARGET_ARCH_SH4),yes) ifeq ($(TARGET_ARCH_SH4),yes)
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "dsputil_altivec.h" #include "dsputil_altivec.h"
#endif #endif
extern void fdct_altivec(int16_t *block);
extern void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block); extern void idct_put_altivec(uint8_t *dest, int line_size, int16_t *block);
extern void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block); extern void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block);
...@@ -48,6 +49,7 @@ static unsigned char* perfname[] = { ...@@ -48,6 +49,7 @@ static unsigned char* perfname[] = {
"fft_calc_altivec", "fft_calc_altivec",
"gmc1_altivec", "gmc1_altivec",
"dct_unquantize_h263_altivec", "dct_unquantize_h263_altivec",
"fdct_altivec",
"idct_add_altivec", "idct_add_altivec",
"idct_put_altivec", "idct_put_altivec",
"put_pixels16_altivec", "put_pixels16_altivec",
...@@ -270,6 +272,14 @@ void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx) ...@@ -270,6 +272,14 @@ void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx)
c->gmc1 = gmc1_altivec; c->gmc1 = gmc1_altivec;
#ifdef CONFIG_ENCODERS
if (avctx->dct_algo == FF_DCT_AUTO ||
avctx->dct_algo == FF_DCT_ALTIVEC)
{
c->fdct = fdct_altivec;
}
#endif //CONFIG_ENCODERS
if ((avctx->idct_algo == FF_IDCT_AUTO) || if ((avctx->idct_algo == FF_IDCT_AUTO) ||
(avctx->idct_algo == FF_IDCT_ALTIVEC)) (avctx->idct_algo == FF_IDCT_ALTIVEC))
{ {
......
...@@ -40,6 +40,7 @@ enum powerpc_perf_index { ...@@ -40,6 +40,7 @@ enum powerpc_perf_index {
altivec_fft_num = 0, altivec_fft_num = 0,
altivec_gmc1_num, altivec_gmc1_num,
altivec_dct_unquantize_h263_num, altivec_dct_unquantize_h263_num,
altivec_fdct,
altivec_idct_add_num, altivec_idct_add_num,
altivec_idct_put_num, altivec_idct_put_num,
altivec_put_pixels16_num, altivec_put_pixels16_num,
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment