lavfi/mp: switch to ff_filter_frame.
This commit is contained in:
parent
586c2528a0
commit
bbd44f6ca4
@ -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)
|
if(pts != MP_NOPTS_VALUE)
|
||||||
picref->pts= pts * av_q2d(outlink->time_base);
|
picref->pts= pts * av_q2d(outlink->time_base);
|
||||||
|
|
||||||
ff_start_frame(outlink, avfilter_ref_buffer(picref, ~0));
|
ff_filter_frame(outlink, picref);
|
||||||
ff_draw_slice(outlink, 0, picref->video->h, 1);
|
|
||||||
ff_end_frame(outlink);
|
|
||||||
avfilter_unref_buffer(picref);
|
|
||||||
m->frame_returned++;
|
m->frame_returned++;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
@ -806,20 +803,9 @@ static int request_frame(AVFilterLink *outlink)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
|
static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *inpic)
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int end_frame(AVFilterLink *inlink)
|
|
||||||
{
|
{
|
||||||
MPContext *m = inlink->dst->priv;
|
MPContext *m = inlink->dst->priv;
|
||||||
AVFilterBufferRef *inpic = inlink->cur_buf;
|
|
||||||
int i;
|
int i;
|
||||||
double pts= MP_NOPTS_VALUE;
|
double pts= MP_NOPTS_VALUE;
|
||||||
mp_image_t* mpi = ff_new_mp_image(inpic->video->w, inpic->video->h);
|
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;
|
mpi->flags |= MP_IMGFLAG_PRESERVE;
|
||||||
if(m->vf.put_image(&m->vf, mpi, pts) == 0){
|
if(m->vf.put_image(&m->vf, mpi, pts) == 0){
|
||||||
av_log(m->avfctx, AV_LOG_DEBUG, "put_image() says skip\n");
|
av_log(m->avfctx, AV_LOG_DEBUG, "put_image() says skip\n");
|
||||||
|
}else{
|
||||||
|
avfilter_unref_buffer(inpic);
|
||||||
}
|
}
|
||||||
ff_free_mp_image(mpi);
|
ff_free_mp_image(mpi);
|
||||||
return 0;
|
return 0;
|
||||||
@ -850,9 +838,7 @@ static const AVFilterPad mp_inputs[] = {
|
|||||||
{
|
{
|
||||||
.name = "default",
|
.name = "default",
|
||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
.start_frame = start_frame,
|
.filter_frame = filter_frame,
|
||||||
.draw_slice = null_draw_slice,
|
|
||||||
.end_frame = end_frame,
|
|
||||||
.config_props = config_inprops,
|
.config_props = config_inprops,
|
||||||
.min_perms = AV_PERM_READ,
|
.min_perms = AV_PERM_READ,
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user