summaryrefslogtreecommitdiff
path: root/libavfilter/vf_mp.c
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2012-12-02 21:15:48 +0100
committerClément Bœsch <ubitux@gmail.com>2012-12-06 21:11:28 +0100
commitbbd44f6ca4bacbc2319b7dfa9db96eeff6f0a33c (patch)
tree72e41186175de49d1e688a185fedac7fd1c0c16c /libavfilter/vf_mp.c
parent586c2528a09767d1e3ab879f00375803e7fac10e (diff)
lavfi/mp: switch to ff_filter_frame.
Diffstat (limited to 'libavfilter/vf_mp.c')
-rw-r--r--libavfilter/vf_mp.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/libavfilter/vf_mp.c b/libavfilter/vf_mp.c
index dbfac914ba..122cec75b3 100644
--- a/libavfilter/vf_mp.c
+++ b/libavfilter/vf_mp.c
@@ -589,10 +589,7 @@ int ff_vf_next_put_image(struct vf_instance *vf,mp_image_t *mpi, double pts){
if(pts != MP_NOPTS_VALUE)
picref->pts= pts * av_q2d(outlink->time_base);
- ff_start_frame(outlink, avfilter_ref_buffer(picref, ~0));
- ff_draw_slice(outlink, 0, picref->video->h, 1);
- ff_end_frame(outlink);
- avfilter_unref_buffer(picref);
+ ff_filter_frame(outlink, picref);
m->frame_returned++;
return 1;
@@ -806,20 +803,9 @@ static int request_frame(AVFilterLink *outlink)
return ret;
}
-static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
-{
- return 0;
-}
-
-static int null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
-{
- return 0;
-}
-
-static int end_frame(AVFilterLink *inlink)
+static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *inpic)
{
MPContext *m = inlink->dst->priv;
- AVFilterBufferRef *inpic = inlink->cur_buf;
int i;
double pts= MP_NOPTS_VALUE;
mp_image_t* mpi = ff_new_mp_image(inpic->video->w, inpic->video->h);
@@ -841,6 +827,8 @@ static int end_frame(AVFilterLink *inlink)
mpi->flags |= MP_IMGFLAG_PRESERVE;
if(m->vf.put_image(&m->vf, mpi, pts) == 0){
av_log(m->avfctx, AV_LOG_DEBUG, "put_image() says skip\n");
+ }else{
+ avfilter_unref_buffer(inpic);
}
ff_free_mp_image(mpi);
return 0;
@@ -850,9 +838,7 @@ static const AVFilterPad mp_inputs[] = {
{
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .start_frame = start_frame,
- .draw_slice = null_draw_slice,
- .end_frame = end_frame,
+ .filter_frame = filter_frame,
.config_props = config_inprops,
.min_perms = AV_PERM_READ,
},