summaryrefslogtreecommitdiff
path: root/libavfilter/vf_fieldorder.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-07-08 17:01:17 +0200
committerAnton Khirnov <anton@khirnov.net>2012-07-20 21:08:26 +0200
commit9203fa0b3225cfb79b37270b2db1200d9183b3b8 (patch)
tree620329f042c6f3f9516f44846b9d1fad2796b390 /libavfilter/vf_fieldorder.c
parentf493c644cd9671965ba886cfaffd3aa7a648c02d (diff)
vf_fieldorder: don't give up its own reference to the output buffer.
Diffstat (limited to 'libavfilter/vf_fieldorder.c')
-rw-r--r--libavfilter/vf_fieldorder.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c
index 55e72389b2..b3cce19fcb 100644
--- a/libavfilter/vf_fieldorder.c
+++ b/libavfilter/vf_fieldorder.c
@@ -121,12 +121,13 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
AVFilterContext *ctx = inlink->dst;
AVFilterLink *outlink = ctx->outputs[0];
- AVFilterBufferRef *outpicref;
+ AVFilterBufferRef *outpicref, *for_next_filter;
outpicref = avfilter_ref_buffer(inpicref, ~0);
outlink->out_buf = outpicref;
- ff_start_frame(outlink, outpicref);
+ for_next_filter = avfilter_ref_buffer(outpicref, ~0);
+ ff_start_frame(outlink, for_next_filter);
}
static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir)
@@ -213,6 +214,7 @@ static void end_frame(AVFilterLink *inlink)
ff_end_frame(outlink);
avfilter_unref_buffer(inpicref);
+ avfilter_unref_bufferp(&outlink->out_buf);
}
AVFilter avfilter_vf_fieldorder = {