Commit f493c644 authored by Anton Khirnov's avatar Anton Khirnov

vf_pad: don't give up its own reference to the output buffer.

parent ad8b6326
...@@ -303,6 +303,7 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref) ...@@ -303,6 +303,7 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
{ {
PadContext *pad = inlink->dst->priv; PadContext *pad = inlink->dst->priv;
AVFilterBufferRef *outpicref = avfilter_ref_buffer(inpicref, ~0); AVFilterBufferRef *outpicref = avfilter_ref_buffer(inpicref, ~0);
AVFilterBufferRef *for_next_filter;
int plane; int plane;
for (plane = 0; plane < 4 && outpicref->data[plane]; plane++) { for (plane = 0; plane < 4 && outpicref->data[plane]; plane++) {
...@@ -339,12 +340,14 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref) ...@@ -339,12 +340,14 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
outpicref->video->w = pad->w; outpicref->video->w = pad->w;
outpicref->video->h = pad->h; outpicref->video->h = pad->h;
ff_start_frame(inlink->dst->outputs[0], outpicref); for_next_filter = avfilter_ref_buffer(outpicref, ~0);
ff_start_frame(inlink->dst->outputs[0], for_next_filter);
} }
static void end_frame(AVFilterLink *link) static void end_frame(AVFilterLink *link)
{ {
ff_end_frame(link->dst->outputs[0]); ff_end_frame(link->dst->outputs[0]);
avfilter_unref_buffer(link->dst->outputs[0]->out_buf);
avfilter_unref_buffer(link->cur_buf); avfilter_unref_buffer(link->cur_buf);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment