summaryrefslogtreecommitdiff
path: root/ffmpeg/libavcodec/ppc/hpeldsp_altivec.c
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2013-12-29 12:19:38 +0000
committerTim Redfern <tim@eclectronics.org>2013-12-29 12:19:38 +0000
commitf7813a5324be39d13ab536c245d15dfc602a7849 (patch)
treefad99148b88823d34a5df2f0a25881a002eb291b /ffmpeg/libavcodec/ppc/hpeldsp_altivec.c
parentb7a5a477b8ff4d4e3028b9dfb9a9df0a41463f92 (diff)
basic type mechanism working
Diffstat (limited to 'ffmpeg/libavcodec/ppc/hpeldsp_altivec.c')
-rw-r--r--ffmpeg/libavcodec/ppc/hpeldsp_altivec.c37
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 */
}