X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Faf_amix.c;h=e40969f70cf7335c11b3953c6b97b083850e265e;hb=b78074fd13ad340b8ea4bb83440da336a0de1e40;hp=47cbb45a7a1b2ec5bf069bafc69c656c91232d9e;hpb=9b424accbe103c304099325c133c4ce1ed9dfe85;p=ffmpeg diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c index 47cbb45a7a1..e40969f70cf 100644 --- a/libavfilter/af_amix.c +++ b/libavfilter/af_amix.c @@ -155,7 +155,7 @@ static int frame_list_add_frame(FrameList *frame_list, int nb_samples, int64_t p typedef struct MixContext { const AVClass *class; /**< class for AVOptions */ - AVFloatDSPContext fdsp; + AVFloatDSPContext *fdsp; int nb_inputs; /**< number of inputs */ int active_inputs; /**< number of input currently active */ @@ -298,7 +298,7 @@ static int output_frame(AVFilterLink *outlink, int nb_samples) plane_size = FFALIGN(plane_size, 16); for (p = 0; p < planes; p++) { - s->fdsp.vector_fmac_scalar((float *)out_buf->extended_data[p], + s->fdsp->vector_fmac_scalar((float *)out_buf->extended_data[p], (float *) in_buf->extended_data[p], s->input_scale[i], plane_size); } @@ -501,7 +501,9 @@ static av_cold int init(AVFilterContext *ctx) ff_insert_inpad(ctx, i, &pad); } - avpriv_float_dsp_init(&s->fdsp, 0); + s->fdsp = avpriv_float_dsp_alloc(0); + if (!s->fdsp) + return AVERROR(ENOMEM); return 0; } @@ -520,6 +522,7 @@ static av_cold void uninit(AVFilterContext *ctx) av_freep(&s->frame_list); av_freep(&s->input_state); av_freep(&s->input_scale); + av_freep(&s->fdsp); for (i = 0; i < ctx->nb_inputs; i++) av_freep(&ctx->input_pads[i].name);