lavfi: move AVFilterLink.frame_wanted_out to FilterLinkInternal

This commit is contained in:
Anton Khirnov
2024-08-11 16:31:11 +02:00
parent 42cbf66fff
commit fb3efef1db
6 changed files with 25 additions and 21 deletions

View File

@@ -264,7 +264,7 @@ void ff_avfilter_link_set_in_status(AVFilterLink *link, int status, int64_t pts)
av_assert0(!li->status_in);
li->status_in = status;
li->status_in_pts = pts;
link->frame_wanted_out = 0;
li->frame_wanted_out = 0;
li->frame_blocked_in = 0;
filter_unblock(link->dst);
ff_filter_set_ready(link->dst, 200);
@@ -278,7 +278,7 @@ static void link_set_out_status(AVFilterLink *link, int status, int64_t pts)
{
FilterLinkInternal * const li = ff_link_internal(link);
av_assert0(!link->frame_wanted_out);
av_assert0(!li->frame_wanted_out);
av_assert0(!li->status_out);
li->status_out = status;
if (pts != AV_NOPTS_VALUE)
@@ -481,7 +481,7 @@ int ff_request_frame(AVFilterLink *link)
return li->status_out;
if (li->status_in) {
if (ff_framequeue_queued_frames(&li->fifo)) {
av_assert1(!link->frame_wanted_out);
av_assert1(!li->frame_wanted_out);
av_assert1(link->dst->ready >= 300);
return 0;
} else {
@@ -492,7 +492,7 @@ int ff_request_frame(AVFilterLink *link)
return li->status_out;
}
}
link->frame_wanted_out = 1;
li->frame_wanted_out = 1;
ff_filter_set_ready(link->src, 100);
return 0;
}
@@ -1058,7 +1058,7 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
link->time_base);
}
li->frame_blocked_in = link->frame_wanted_out = 0;
li->frame_blocked_in = li->frame_wanted_out = 0;
li->l.frame_count_in++;
li->l.sample_count_in += frame->nb_samples;
filter_unblock(link->dst);
@@ -1241,7 +1241,7 @@ static int ff_filter_activate_default(AVFilterContext *filter)
}
for (i = 0; i < filter->nb_outputs; i++) {
FilterLinkInternal * const li = ff_link_internal(filter->outputs[i]);
if (filter->outputs[i]->frame_wanted_out &&
if (li->frame_wanted_out &&
!li->frame_blocked_in) {
return ff_request_frame_to_filter(filter->outputs[i]);
}
@@ -1581,7 +1581,7 @@ void ff_inlink_request_frame(AVFilterLink *link)
av_unused FilterLinkInternal *li = ff_link_internal(link);
av_assert1(!li->status_in);
av_assert1(!li->status_out);
link->frame_wanted_out = 1;
li->frame_wanted_out = 1;
ff_filter_set_ready(link->src, 100);
}
@@ -1590,7 +1590,7 @@ void ff_inlink_set_status(AVFilterLink *link, int status)
FilterLinkInternal * const li = ff_link_internal(link);
if (li->status_out)
return;
link->frame_wanted_out = 0;
li->frame_wanted_out = 0;
li->frame_blocked_in = 0;
link_set_out_status(link, status, AV_NOPTS_VALUE);
while (ff_framequeue_queued_frames(&li->fifo)) {
@@ -1642,3 +1642,9 @@ int ff_filter_init_hw_frames(AVFilterContext *avctx, AVFilterLink *link,
return 0;
}
int ff_outlink_frame_wanted(AVFilterLink *link)
{
FilterLinkInternal * const li = ff_link_internal(link);
return li->frame_wanted_out;
}