summaryrefslogtreecommitdiff
path: root/libavfilter/avfilter.c
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-02-15 21:36:13 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-02-15 21:36:13 +0000
commit3628fbe0920484c0d11747e077af7af6a32b3e5b (patch)
treea8b96e832e3cf6a581fc18b48ea06a2d61648487 /libavfilter/avfilter.c
parent72e3037a2caa1076b9a65b1384c5c5ead2dba096 (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/avfilter.c')
-rw-r--r--libavfilter/avfilter.c15
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)