summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/hpeldsp.c2
-rw-r--r--libavcodec/ppc/hpeldsp_altivec.c16
2 files changed, 11 insertions, 7 deletions
diff --git a/libavcodec/hpeldsp.c b/libavcodec/hpeldsp.c
index 512767492d..2c2d298cd2 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 4309d39851..6382f0a767 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 */