diff options
author | Vitor Sessak <vitor1001@gmail.com> | 2008-02-15 21:36:13 +0000 |
---|---|---|
committer | Vitor Sessak <vitor1001@gmail.com> | 2008-02-15 21:36:13 +0000 |
commit | 3628fbe0920484c0d11747e077af7af6a32b3e5b (patch) | |
tree | a8b96e832e3cf6a581fc18b48ea06a2d61648487 /libavfilter | |
parent | 72e3037a2caa1076b9a65b1384c5c5ead2dba096 (diff) |
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
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/avfilter.c | 15 |
1 files changed, 15 insertions, 0 deletions
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) |