lavfi: move AVFilterLink.frame_rate to FilterLink

Co-developed-by: James Almer <jamrial@gmail.com>
This commit is contained in:
Anton Khirnov
2024-08-06 08:50:21 +02:00
parent d6318a244d
commit a23d565ea7
120 changed files with 503 additions and 239 deletions

View File

@@ -29,6 +29,7 @@
#include "avfilter.h"
#include "drawutils.h"
#include "filters.h"
#include "formats.h"
#include "internal.h"
#include "framesync.h"
@@ -196,7 +197,9 @@ static int config_output(AVFilterLink *outlink)
{
AVFilterContext *ctx = outlink->src;
StackContext *s = ctx->priv;
AVRational frame_rate = ctx->inputs[0]->frame_rate;
FilterLink *il = ff_filter_link(ctx->inputs[0]);
FilterLink *ol = ff_filter_link(outlink);
AVRational frame_rate = il->frame_rate;
AVRational sar = ctx->inputs[0]->sample_aspect_ratio;
int height = ctx->inputs[0]->h;
int width = ctx->inputs[0]->w;
@@ -383,16 +386,16 @@ static int config_output(AVFilterLink *outlink)
outlink->w = width;
outlink->h = height;
outlink->frame_rate = frame_rate;
ol->frame_rate = frame_rate;
outlink->sample_aspect_ratio = sar;
for (i = 1; i < s->nb_inputs; i++) {
AVFilterLink *inlink = ctx->inputs[i];
if (outlink->frame_rate.num != inlink->frame_rate.num ||
outlink->frame_rate.den != inlink->frame_rate.den) {
il = ff_filter_link(ctx->inputs[i]);
if (ol->frame_rate.num != il->frame_rate.num ||
ol->frame_rate.den != il->frame_rate.den) {
av_log(ctx, AV_LOG_VERBOSE,
"Video inputs have different frame rates, output will be VFR\n");
outlink->frame_rate = av_make_q(1, 0);
ol->frame_rate = av_make_q(1, 0);
break;
}
}