summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavfilter/vf_drawtext.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index 22a9480aba..fd2ec8deae 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -812,6 +812,7 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
{
AVFilterContext *ctx = inlink->dst;
DrawTextContext *dtext = ctx->priv;
+ AVFilterBufferRef *buf_out;
int fail = 0;
if (dtext_prepare_text(ctx) < 0) {
@@ -850,7 +851,8 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
(int)dtext->var_values[VAR_N], dtext->var_values[VAR_T],
dtext->x, dtext->y, dtext->x+dtext->w, dtext->y+dtext->h);
- ff_start_frame(inlink->dst->outputs[0], inpicref);
+ buf_out = avfilter_ref_buffer(inpicref, ~0);
+ ff_start_frame(inlink->dst->outputs[0], buf_out);
}
static void end_frame(AVFilterLink *inlink)
@@ -866,6 +868,7 @@ static void end_frame(AVFilterLink *inlink)
ff_draw_slice(outlink, 0, picref->video->h, 1);
ff_end_frame(outlink);
+ avfilter_unref_buffer(inlink->cur_buf);
}
AVFilter avfilter_vf_drawtext = {