From 3628fbe0920484c0d11747e077af7af6a32b3e5b Mon Sep 17 00:00:00 2001 From: Vitor Sessak Date: Fri, 15 Feb 2008 21:36:13 +0000 Subject: [PATCH] Adjust the default start_frame() and end_frame() implementations to simplify the implementation of simple filters. Commited in SoC by Bobby Bingham on 2007-07-08 16:48:15 Originally committed as revision 11982 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavfilter/avfilter.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index ae69134b78..001c729f14 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -64,13 +64,28 @@ AVFilterPicRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms) void avfilter_default_start_frame(AVFilterLink *link, AVFilterPicRef *picref) { + AVFilterLink *out = link->dst->outputs[0]; + link->cur_pic = picref; + + if(out) { + out->outpic = avfilter_get_video_buffer(out, AV_PERM_WRITE); + avfilter_start_frame(out, avfilter_ref_pic(out->outpic, ~0)); + } } void avfilter_default_end_frame(AVFilterLink *link) { + AVFilterLink *out = link->dst->outputs[0]; + avfilter_unref_pic(link->cur_pic); link->cur_pic = NULL; + + if(out) { + avfilter_unref_pic(out->outpic); + out->outpic = NULL; + avfilter_end_frame(out); + } } AVFilterPicRef *avfilter_ref_pic(AVFilterPicRef *ref, int pmask)