out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!out)
return AVERROR(ENOMEM);
+ av_frame_copy_props(out, a);
td.xf[0] = a, td.xf[1] = b, td.out = out, td.progress = progress;
ctx->internal->execute(ctx, xfade_slice, &td, NULL, FFMIN(outlink->h, ff_filter_get_nb_threads(ctx)));
FF_FILTER_FORWARD_STATUS_BACK_ALL(outlink, ctx);
if (s->xfade_is_over) {
+ if (!s->eof[0]) {
+ ret = ff_inlink_consume_frame(ctx->inputs[0], &in);
+ if (ret > 0)
+ av_frame_free(&in);
+ }
ret = ff_inlink_consume_frame(ctx->inputs[1], &in);
if (ret < 0) {
return ret;