mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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>
This commit is contained in:
parent
3dfb643cd4
commit
451b6a990a
@ -116,8 +116,12 @@ float avpriv_scalarproduct_float_c(const float *v1, const float *v2, int len)
|
|||||||
return p;
|
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_fmul = vector_fmul_c;
|
||||||
fdsp->vector_fmac_scalar = vector_fmac_scalar_c;
|
fdsp->vector_fmac_scalar = vector_fmac_scalar_c;
|
||||||
fdsp->vector_fmul_scalar = vector_fmul_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);
|
ff_float_dsp_init_x86(fdsp);
|
||||||
if (ARCH_MIPS)
|
if (ARCH_MIPS)
|
||||||
ff_float_dsp_init_mips(fdsp);
|
ff_float_dsp_init_mips(fdsp);
|
||||||
}
|
return 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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -386,7 +383,7 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
int ret = 0, seeded = 0;
|
int ret = 0, seeded = 0;
|
||||||
uint32_t seed;
|
uint32_t seed;
|
||||||
AVFloatDSPContext fdsp, cdsp;
|
AVFloatDSPContext *fdsp, *cdsp;
|
||||||
AVLFG lfg;
|
AVLFG lfg;
|
||||||
|
|
||||||
LOCAL_ALIGNED(32, float, src0, [LEN]);
|
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);
|
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);
|
av_lfg_init(&lfg, seed);
|
||||||
|
|
||||||
fill_float_array(&lfg, src0, LEN);
|
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_src0, LEN);
|
||||||
fill_double_array(&lfg, dbl_src1, LEN);
|
fill_double_array(&lfg, dbl_src1, LEN);
|
||||||
|
|
||||||
avpriv_float_dsp_init(&fdsp, 1);
|
if (test_vector_fmul(fdsp, cdsp, src0, src1))
|
||||||
av_force_cpu_flags(0);
|
|
||||||
avpriv_float_dsp_init(&cdsp, 1);
|
|
||||||
|
|
||||||
if (test_vector_fmul(&fdsp, &cdsp, src0, src1))
|
|
||||||
ret -= 1 << 0;
|
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;
|
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;
|
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;
|
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;
|
ret -= 1 << 4;
|
||||||
if (test_vector_fmul_reverse(&fdsp, &cdsp, src0, src1))
|
if (test_vector_fmul_reverse(fdsp, cdsp, src0, src1))
|
||||||
ret -= 1 << 5;
|
ret -= 1 << 5;
|
||||||
if (test_butterflies_float(&fdsp, &cdsp, src0, src1))
|
if (test_butterflies_float(fdsp, cdsp, src0, src1))
|
||||||
ret -= 1 << 6;
|
ret -= 1 << 6;
|
||||||
if (test_scalarproduct_float(&fdsp, &cdsp, src0, src1))
|
if (test_scalarproduct_float(fdsp, cdsp, src0, src1))
|
||||||
ret -= 1 << 7;
|
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;
|
ret -= 1 << 8;
|
||||||
|
|
||||||
|
end:
|
||||||
|
av_freep(&fdsp);
|
||||||
|
av_freep(&cdsp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,15 +170,6 @@ typedef struct AVFloatDSPContext {
|
|||||||
*/
|
*/
|
||||||
float avpriv_scalarproduct_float_c(const float *v1, const float *v2, int len);
|
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_aarch64(AVFloatDSPContext *fdsp);
|
||||||
void ff_float_dsp_init_arm(AVFloatDSPContext *fdsp);
|
void ff_float_dsp_init_arm(AVFloatDSPContext *fdsp);
|
||||||
void ff_float_dsp_init_ppc(AVFloatDSPContext *fdsp, int strict);
|
void ff_float_dsp_init_ppc(AVFloatDSPContext *fdsp, int strict);
|
||||||
|
Loading…
Reference in New Issue
Block a user