diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-07-08 17:01:17 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-07-20 21:08:26 +0200 |
commit | 9203fa0b3225cfb79b37270b2db1200d9183b3b8 (patch) | |
tree | 620329f042c6f3f9516f44846b9d1fad2796b390 /libavfilter | |
parent | f493c644cd9671965ba886cfaffd3aa7a648c02d (diff) | |
download | ffmpeg-streaming-9203fa0b3225cfb79b37270b2db1200d9183b3b8.zip ffmpeg-streaming-9203fa0b3225cfb79b37270b2db1200d9183b3b8.tar.gz |
vf_fieldorder: don't give up its own reference to the output buffer.
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/vf_fieldorder.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c index 55e7238..b3cce19 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 = { |