1
0
Fork 0

avfilter/avfilter: Move init_state to FilterLinkInternal

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2024-02-14 16:43:35 +01:00
parent 89eea4e19a
commit 40b91eaea9
3 changed files with 11 additions and 10 deletions

View File

@ -322,6 +322,7 @@ int avfilter_config_links(AVFilterContext *filter)
for (i = 0; i < filter->nb_inputs; i ++) {
AVFilterLink *link = filter->inputs[i];
AVFilterLink *inlink;
FilterLinkInternal *li = ff_link_internal(link);
if (!link) continue;
if (!link->src || !link->dst) {
@ -334,14 +335,14 @@ int avfilter_config_links(AVFilterContext *filter)
link->current_pts =
link->current_pts_us = AV_NOPTS_VALUE;
switch (link->init_state) {
switch (li->init_state) {
case AVLINK_INIT:
continue;
case AVLINK_STARTINIT:
av_log(filter, AV_LOG_INFO, "circular filter chain detected\n");
return 0;
case AVLINK_UNINIT:
link->init_state = AVLINK_STARTINIT;
li->init_state = AVLINK_STARTINIT;
if ((ret = avfilter_config_links(link->src)) < 0)
return ret;
@ -412,7 +413,7 @@ int avfilter_config_links(AVFilterContext *filter)
return ret;
}
link->init_state = AVLINK_INIT;
li->init_state = AVLINK_INIT;
}
}

View File

@ -611,13 +611,6 @@ struct AVFilterLink {
*/
AVFilterFormatsConfig outcfg;
/** stage of the initialization of the link properties (dimensions, etc) */
enum {
AVLINK_UNINIT = 0, ///< not started
AVLINK_STARTINIT, ///< started, but incomplete
AVLINK_INIT ///< complete
} init_state;
/**
* Graph the filter belongs to.
*/

View File

@ -63,6 +63,13 @@ typedef struct FilterLinkInternal {
* corresponding code.
*/
int status_out;
/** stage of the initialization of the link properties (dimensions, etc) */
enum {
AVLINK_UNINIT = 0, ///< not started
AVLINK_STARTINIT, ///< started, but incomplete
AVLINK_INIT ///< complete
} init_state;
} FilterLinkInternal;
static inline FilterLinkInternal *ff_link_internal(AVFilterLink *link)