From d5a7229ba4aabc2b6407c731d9175879ae54c5ea Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Mon, 21 May 2012 12:58:41 -0400 Subject: Add a float DSP framework to libavutil Move vector_fmul() from DSPContext to AVFloatDSPContext. --- libavutil/arm/float_dsp_init_arm.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 libavutil/arm/float_dsp_init_arm.c (limited to 'libavutil/arm/float_dsp_init_arm.c') diff --git a/libavutil/arm/float_dsp_init_arm.c b/libavutil/arm/float_dsp_init_arm.c new file mode 100644 index 0000000000..0fee8611c4 --- /dev/null +++ b/libavutil/arm/float_dsp_init_arm.c @@ -0,0 +1,33 @@ +/* + * ARM optimized DSP utils + * + * This file is part of Libav. + * + * Libav is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Libav is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "libavutil/arm/cpu.h" +#include "libavutil/float_dsp.h" +#include "float_dsp_arm.h" + +void ff_float_dsp_init_arm(AVFloatDSPContext *fdsp) +{ + int cpu_flags = av_get_cpu_flags(); + + if (have_vfp(cpu_flags)) + ff_dsputil_init_vfp(fdsp); + if (have_neon(cpu_flags)) + ff_dsputil_init_neon(fdsp); +} -- cgit v1.2.3 From a839d6abf870af82bdde8afdef40377eb31c82f8 Mon Sep 17 00:00:00 2001 From: Mans Rullgard Date: Fri, 8 Jun 2012 19:24:51 +0100 Subject: ARM: fix float_dsp breakage from d5a7229 Signed-off-by: Mans Rullgard --- libavutil/arm/float_dsp_arm.h | 4 ++-- libavutil/arm/float_dsp_init_arm.c | 4 ++-- libavutil/arm/float_dsp_init_neon.c | 4 ++-- libavutil/arm/float_dsp_init_vfp.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'libavutil/arm/float_dsp_init_arm.c') diff --git a/libavutil/arm/float_dsp_arm.h b/libavutil/arm/float_dsp_arm.h index 976e5a0a24..81fad3ef2f 100644 --- a/libavutil/arm/float_dsp_arm.h +++ b/libavutil/arm/float_dsp_arm.h @@ -23,7 +23,7 @@ #include "libavutil/float_dsp.h" -void ff_dsputil_init_vfp (AVFloatDSPContext *fdsp); -void ff_dsputil_init_neon(AVFloatDSPContext *fdsp); +void ff_float_dsp_init_vfp (AVFloatDSPContext *fdsp); +void ff_float_dsp_init_neon(AVFloatDSPContext *fdsp); #endif /* AVUTIL_ARM_FLOAT_DSP_ARM_H */ diff --git a/libavutil/arm/float_dsp_init_arm.c b/libavutil/arm/float_dsp_init_arm.c index 0fee8611c4..a352becd0c 100644 --- a/libavutil/arm/float_dsp_init_arm.c +++ b/libavutil/arm/float_dsp_init_arm.c @@ -27,7 +27,7 @@ void ff_float_dsp_init_arm(AVFloatDSPContext *fdsp) int cpu_flags = av_get_cpu_flags(); if (have_vfp(cpu_flags)) - ff_dsputil_init_vfp(fdsp); + ff_float_dsp_init_vfp(fdsp); if (have_neon(cpu_flags)) - ff_dsputil_init_neon(fdsp); + ff_float_dsp_init_neon(fdsp); } diff --git a/libavutil/arm/float_dsp_init_neon.c b/libavutil/arm/float_dsp_init_neon.c index 1e732db9df..fa6d0d7d15 100644 --- a/libavutil/arm/float_dsp_init_neon.c +++ b/libavutil/arm/float_dsp_init_neon.c @@ -26,7 +26,7 @@ void ff_vector_fmul_neon(float *dst, const float *src0, const float *src1, int len); -void ff_dsputil_init_neon(AVFloatDSPContext *fdsp) +void ff_float_dsp_init_neon(AVFloatDSPContext *fdsp) { - c->vector_fmul = ff_vector_fmul_neon; + fdsp->vector_fmul = ff_vector_fmul_neon; } diff --git a/libavutil/arm/float_dsp_init_vfp.c b/libavutil/arm/float_dsp_init_vfp.c index d58dbded3a..30a9ce4ed7 100644 --- a/libavutil/arm/float_dsp_init_vfp.c +++ b/libavutil/arm/float_dsp_init_vfp.c @@ -25,10 +25,10 @@ void ff_vector_fmul_vfp(float *dst, const float *src0, const float *src1, int len); -void ff_dsputil_init_vfp(DSPContext* c, AVCodecContext *avctx) +void ff_float_dsp_init_vfp(AVFloatDSPContext *fdsp) { int cpu_flags = av_get_cpu_flags(); if (!have_vfpv3(cpu_flags)) - c->vector_fmul = ff_vector_fmul_vfp; + fdsp->vector_fmul = ff_vector_fmul_vfp; } -- cgit v1.2.3