mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
Implement poll_frame() method. Fix ffmpeg.c bug with
vf_fps filter. Commited in SoC by Vitor Sessak on 2008-02-06 19:55:36 Originally committed as revision 12718 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
095ae1bcb7
commit
affadb5b99
@ -69,6 +69,15 @@ static int link_in_request_frame(AVFilterLink *link)
|
||||
return avfilter_request_frame(link2);
|
||||
}
|
||||
|
||||
|
||||
static int link_in_poll_frame(AVFilterLink *link)
|
||||
{
|
||||
AVFilterLink *link2 = get_extern_input_link(link);
|
||||
if(!link2)
|
||||
return -1;
|
||||
return avfilter_poll_frame(link2);
|
||||
}
|
||||
|
||||
static int link_in_config_props(AVFilterLink *link)
|
||||
{
|
||||
AVFilterLink *link2 = get_extern_input_link(link);
|
||||
@ -236,6 +245,16 @@ static int graph_out_request_frame(AVFilterLink *link)
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int graph_out_poll_frame(AVFilterLink *link)
|
||||
{
|
||||
AVFilterLink *link2 = get_intern_output_link(link);
|
||||
|
||||
if(!link2)
|
||||
return -1;
|
||||
|
||||
return avfilter_poll_frame(link2);
|
||||
}
|
||||
|
||||
static int graph_out_config_props(AVFilterLink *link)
|
||||
{
|
||||
GraphContext *graph = link->src->priv;
|
||||
@ -276,6 +295,7 @@ static int add_graph_input(AVFilterContext *gctx, AVFilterContext *filt, unsigne
|
||||
.name = NULL, /* FIXME? */
|
||||
.type = AV_PAD_VIDEO,
|
||||
.request_frame = link_in_request_frame,
|
||||
.poll_frame = link_in_poll_frame,
|
||||
.config_props = link_in_config_props,
|
||||
};
|
||||
|
||||
@ -296,6 +316,7 @@ static int add_graph_output(AVFilterContext *gctx, AVFilterContext *filt, unsign
|
||||
.name = name,
|
||||
.type = AV_PAD_VIDEO,
|
||||
.request_frame = graph_out_request_frame,
|
||||
.poll_frame = graph_out_poll_frame,
|
||||
.config_props = graph_out_config_props,
|
||||
};
|
||||
AVFilterPad dummy_inpad =
|
||||
@ -488,12 +509,14 @@ static int graph_load_from_desc(AVFilterContext *ctx, AVFilterGraphDesc *desc)
|
||||
for(curfilt = desc->filters; curfilt; curfilt = curfilt->next) {
|
||||
if(!(filterdef = avfilter_get_by_name(curfilt->filter)) ||
|
||||
!(filt = avfilter_open(filterdef, curfilt->name))) {
|
||||
av_log(ctx, AV_LOG_ERROR, "error creating filter\n");
|
||||
av_log(ctx, AV_LOG_ERROR,
|
||||
"error creating filter '%s'\n", curfilt->name);
|
||||
goto fail;
|
||||
}
|
||||
avfilter_graph_add_filter(ctx, filt);
|
||||
if(avfilter_init_filter(filt, curfilt->args, NULL)) {
|
||||
av_log(ctx, AV_LOG_ERROR, "error initializing filter\n");
|
||||
av_log(ctx, AV_LOG_ERROR,
|
||||
"error initializing filter '%s'\n", curfilt->name);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user