diff options
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/hpeldsp.c | 2 | ||||
-rw-r--r-- | libavcodec/ppc/hpeldsp_altivec.c | 16 |
2 files changed, 11 insertions, 7 deletions
diff --git a/libavcodec/hpeldsp.c b/libavcodec/hpeldsp.c index 5127674..2c2d298 100644 --- a/libavcodec/hpeldsp.c +++ b/libavcodec/hpeldsp.c @@ -54,6 +54,8 @@ av_cold void ff_hpeldsp_init(HpelDSPContext *c, int flags) hpel_funcs(avg, [3], 2); hpel_funcs(avg_no_rnd,, 16); + if (ARCH_PPC) + ff_hpeldsp_init_ppc(c, flags); if (ARCH_X86) ff_hpeldsp_init_x86(c, flags); if (ARCH_ARM) ff_hpeldsp_init_arm (c, flags); diff --git a/libavcodec/ppc/hpeldsp_altivec.c b/libavcodec/ppc/hpeldsp_altivec.c index 4309d39..6382f0a 100644 --- a/libavcodec/ppc/hpeldsp_altivec.c +++ b/libavcodec/ppc/hpeldsp_altivec.c @@ -444,20 +444,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->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->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; } #endif /* HAVE_ALTIVEC */ |