aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-10-14 01:42:14 +0200
committerAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>2015-10-21 00:24:58 +0200
commit451b6a990a1122533f01ad6bb8734e1e58307a15 (patch)
tree2dae7588257f1a5ab733e703f742e8d304f8549e
parent3dfb643cd40790629859e99d44bf888e41e58122 (diff)
downloadffmpeg-451b6a990a1122533f01ad6bb8734e1e58307a15.tar.gz
avutil: merge avpriv_float_dsp_init into avpriv_float_dsp_alloc
Also replace the last two usages of avpriv_float_dsp_init with avpriv_float_dsp_alloc. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
-rw-r--r--libavutil/float_dsp.c51
-rw-r--r--libavutil/float_dsp.h9
2 files changed, 28 insertions, 32 deletions
diff --git a/libavutil/float_dsp.c b/libavutil/float_dsp.c
index 337708e847..49e0ae7f03 100644
--- a/libavutil/float_dsp.c
+++ b/libavutil/float_dsp.c
@@ -116,8 +116,12 @@ float avpriv_scalarproduct_float_c(const float *v1, const float *v2, int len)
return p;
}
-av_cold void avpriv_float_dsp_init(AVFloatDSPContext *fdsp, int bit_exact)
+av_cold AVFloatDSPContext *avpriv_float_dsp_alloc(int bit_exact)
{
+ AVFloatDSPContext *fdsp = av_mallocz(sizeof(AVFloatDSPContext));
+ if (!fdsp)
+ return NULL;
+
fdsp->vector_fmul = vector_fmul_c;
fdsp->vector_fmac_scalar = vector_fmac_scalar_c;
fdsp->vector_fmul_scalar = vector_fmul_scalar_c;
@@ -138,14 +142,7 @@ av_cold void avpriv_float_dsp_init(AVFloatDSPContext *fdsp, int bit_exact)
ff_float_dsp_init_x86(fdsp);
if (ARCH_MIPS)
ff_float_dsp_init_mips(fdsp);
-}
-
-av_cold AVFloatDSPContext *avpriv_float_dsp_alloc(int bit_exact)
-{
- AVFloatDSPContext *ret = av_mallocz(sizeof(AVFloatDSPContext));
- if (ret)
- avpriv_float_dsp_init(ret, bit_exact);
- return ret;
+ return fdsp;
}
@@ -386,7 +383,7 @@ int main(int argc, char **argv)
{
int ret = 0, seeded = 0;
uint32_t seed;
- AVFloatDSPContext fdsp, cdsp;
+ AVFloatDSPContext *fdsp, *cdsp;
AVLFG lfg;
LOCAL_ALIGNED(32, float, src0, [LEN]);
@@ -421,6 +418,15 @@ int main(int argc, char **argv)
av_log(NULL, AV_LOG_INFO, "float_dsp-test: %s %u\n", seeded ? "seed" : "random seed", seed);
+ fdsp = avpriv_float_dsp_alloc(1);
+ av_force_cpu_flags(0);
+ cdsp = avpriv_float_dsp_alloc(1);
+
+ if (!fdsp || !cdsp) {
+ ret = 1;
+ goto end;
+ }
+
av_lfg_init(&lfg, seed);
fill_float_array(&lfg, src0, LEN);
@@ -430,29 +436,28 @@ int main(int argc, char **argv)
fill_double_array(&lfg, dbl_src0, LEN);
fill_double_array(&lfg, dbl_src1, LEN);
- avpriv_float_dsp_init(&fdsp, 1);
- av_force_cpu_flags(0);
- avpriv_float_dsp_init(&cdsp, 1);
-
- if (test_vector_fmul(&fdsp, &cdsp, src0, src1))
+ if (test_vector_fmul(fdsp, cdsp, src0, src1))
ret -= 1 << 0;
- if (test_vector_fmac_scalar(&fdsp, &cdsp, src2, src0, src1[0]))
+ if (test_vector_fmac_scalar(fdsp, cdsp, src2, src0, src1[0]))
ret -= 1 << 1;
- if (test_vector_fmul_scalar(&fdsp, &cdsp, src0, src1[0]))
+ if (test_vector_fmul_scalar(fdsp, cdsp, src0, src1[0]))
ret -= 1 << 2;
- if (test_vector_fmul_window(&fdsp, &cdsp, src0, src1, src2))
+ if (test_vector_fmul_window(fdsp, cdsp, src0, src1, src2))
ret -= 1 << 3;
- if (test_vector_fmul_add(&fdsp, &cdsp, src0, src1, src2))
+ if (test_vector_fmul_add(fdsp, cdsp, src0, src1, src2))
ret -= 1 << 4;
- if (test_vector_fmul_reverse(&fdsp, &cdsp, src0, src1))
+ if (test_vector_fmul_reverse(fdsp, cdsp, src0, src1))
ret -= 1 << 5;
- if (test_butterflies_float(&fdsp, &cdsp, src0, src1))
+ if (test_butterflies_float(fdsp, cdsp, src0, src1))
ret -= 1 << 6;
- if (test_scalarproduct_float(&fdsp, &cdsp, src0, src1))
+ if (test_scalarproduct_float(fdsp, cdsp, src0, src1))
ret -= 1 << 7;
- if (test_vector_dmul_scalar(&fdsp, &cdsp, dbl_src0, dbl_src1[0]))
+ if (test_vector_dmul_scalar(fdsp, cdsp, dbl_src0, dbl_src1[0]))
ret -= 1 << 8;
+end:
+ av_freep(&fdsp);
+ av_freep(&cdsp);
return ret;
}
diff --git a/libavutil/float_dsp.h b/libavutil/float_dsp.h
index ad8e3eb1fb..d1be38f947 100644
--- a/libavutil/float_dsp.h
+++ b/libavutil/float_dsp.h
@@ -170,15 +170,6 @@ typedef struct AVFloatDSPContext {
*/
float avpriv_scalarproduct_float_c(const float *v1, const float *v2, int len);
-/**
- * Initialize a float DSP context.
- *
- * @param fdsp float DSP context
- * @param strict setting to non-zero avoids using functions which may not be IEEE-754 compliant
- */
-void avpriv_float_dsp_init(AVFloatDSPContext *fdsp, int strict);
-
-
void ff_float_dsp_init_aarch64(AVFloatDSPContext *fdsp);
void ff_float_dsp_init_arm(AVFloatDSPContext *fdsp);
void ff_float_dsp_init_ppc(AVFloatDSPContext *fdsp, int strict);