diff options
Diffstat (limited to 'ffmpeg/libavcodec/ppc/hpeldsp_altivec.c')
| -rw-r--r-- | ffmpeg/libavcodec/ppc/hpeldsp_altivec.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/ffmpeg/libavcodec/ppc/hpeldsp_altivec.c b/ffmpeg/libavcodec/ppc/hpeldsp_altivec.c index 4309d39..345ec39 100644 --- a/ffmpeg/libavcodec/ppc/hpeldsp_altivec.c +++ b/ffmpeg/libavcodec/ppc/hpeldsp_altivec.c @@ -21,17 +21,19 @@ */ #include "config.h" -#include "libavutil/cpu.h" -#include "libavcodec/hpeldsp.h" -#if HAVE_ALTIVEC #if HAVE_ALTIVEC_H #include <altivec.h> #endif + +#include "libavutil/attributes.h" +#include "libavutil/cpu.h" #include "libavutil/ppc/types_altivec.h" #include "libavutil/ppc/util_altivec.h" +#include "libavcodec/hpeldsp.h" #include "dsputil_altivec.h" +#if HAVE_ALTIVEC /* next one assumes that ((line_size % 16) == 0) */ void ff_put_pixels16_altivec(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h) { @@ -444,21 +446,22 @@ static void avg_pixels8_xy2_altivec(uint8_t *block, const uint8_t *pixels, ptrdi } #endif /* HAVE_ALTIVEC */ -void ff_hpeldsp_init_ppc(HpelDSPContext* c, int flags) +av_cold void ff_hpeldsp_init_ppc(HpelDSPContext *c, int flags) { #if HAVE_ALTIVEC - int mm_flags = av_get_cpu_flags(); - - if (mm_flags & AV_CPU_FLAG_ALTIVEC) { - c->put_pixels_tab[0][0] = ff_put_pixels16_altivec; - c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_altivec; - c->avg_pixels_tab[0][0] = ff_avg_pixels16_altivec; - c->avg_pixels_tab[1][0] = avg_pixels8_altivec; - c->avg_pixels_tab[1][3] = avg_pixels8_xy2_altivec; - c->put_pixels_tab[1][3] = put_pixels8_xy2_altivec; - c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_altivec; - c->put_pixels_tab[0][3] = put_pixels16_xy2_altivec; - c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy2_altivec; - } + if (!(av_get_cpu_flags() & AV_CPU_FLAG_ALTIVEC)) + return; + + c->avg_pixels_tab[0][0] = ff_avg_pixels16_altivec; + c->avg_pixels_tab[1][0] = avg_pixels8_altivec; + c->avg_pixels_tab[1][3] = avg_pixels8_xy2_altivec; + + c->put_pixels_tab[0][0] = ff_put_pixels16_altivec; + c->put_pixels_tab[1][3] = put_pixels8_xy2_altivec; + c->put_pixels_tab[0][3] = put_pixels16_xy2_altivec; + + c->put_no_rnd_pixels_tab[0][0] = ff_put_pixels16_altivec; + c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_altivec; + c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy2_altivec; #endif /* HAVE_ALTIVEC */ } |
