X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Ff_reverse.c;h=2a85e6966e34503975003a1c57e7a61321d96a34;hb=a04ad248a05e7b613abe09b3bb067f555108d794;hp=5f27927075562c2467ad5e58e5fc65f7443a799c;hpb=67d466d09b105b2b1d3d8da4c21d8975925741ae;p=ffmpeg diff --git a/libavfilter/f_reverse.c b/libavfilter/f_reverse.c index 5f279270755..2a85e6966e3 100644 --- a/libavfilter/f_reverse.c +++ b/libavfilter/f_reverse.c @@ -58,6 +58,11 @@ static av_cold void uninit(AVFilterContext *ctx) { ReverseContext *s = ctx->priv; + while (s->nb_frames > 0) { + av_frame_free(&s->frames[s->nb_frames - 1]); + s->nb_frames--; + } + av_freep(&s->pts); av_freep(&s->frames); } @@ -103,6 +108,7 @@ static int request_frame(AVFilterLink *outlink) AVFrame *out = s->frames[s->nb_frames - 1]; out->pts = s->pts[s->flush_idx++]; ret = ff_filter_frame(outlink, out); + s->frames[s->nb_frames - 1] = NULL; s->nb_frames--; } @@ -127,7 +133,7 @@ static const AVFilterPad reverse_outputs[] = { { NULL } }; -AVFilter ff_vf_reverse = { +const AVFilter ff_vf_reverse = { .name = "reverse", .description = NULL_IF_CONFIG_SMALL("Reverse a clip."), .priv_size = sizeof(ReverseContext), @@ -262,6 +268,7 @@ static int areverse_request_frame(AVFilterLink *outlink) else reverse_samples_packed(out); ret = ff_filter_frame(outlink, out); + s->frames[s->nb_frames - 1] = NULL; s->nb_frames--; } @@ -287,7 +294,7 @@ static const AVFilterPad areverse_outputs[] = { { NULL } }; -AVFilter ff_af_areverse = { +const AVFilter ff_af_areverse = { .name = "areverse", .description = NULL_IF_CONFIG_SMALL("Reverse an audio clip."), .query_formats = query_formats,