You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
lavfi/vf_libplacebo: skip cache selectively per-input
It may be the case that we want to skip the single frame cache for some inputs but not others.
This commit is contained in:
@@ -182,7 +182,6 @@ typedef struct LibplaceboContext {
|
|||||||
float antiringing;
|
float antiringing;
|
||||||
int sigmoid;
|
int sigmoid;
|
||||||
int skip_aa;
|
int skip_aa;
|
||||||
int skip_cache;
|
|
||||||
float polar_cutoff;
|
float polar_cutoff;
|
||||||
int disable_linear;
|
int disable_linear;
|
||||||
int disable_builtin;
|
int disable_builtin;
|
||||||
@@ -471,7 +470,6 @@ static int update_settings(AVFilterContext *ctx)
|
|||||||
.num_hooks = s->num_hooks,
|
.num_hooks = s->num_hooks,
|
||||||
|
|
||||||
.skip_anti_aliasing = s->skip_aa,
|
.skip_anti_aliasing = s->skip_aa,
|
||||||
.skip_caching_single_frame = s->skip_cache,
|
|
||||||
.polar_cutoff = s->polar_cutoff,
|
.polar_cutoff = s->polar_cutoff,
|
||||||
.disable_linear_scaling = s->disable_linear,
|
.disable_linear_scaling = s->disable_linear,
|
||||||
.disable_builtin_scalers = s->disable_builtin,
|
.disable_builtin_scalers = s->disable_builtin,
|
||||||
@@ -883,8 +881,10 @@ static int output_frame(AVFilterContext *ctx, int64_t pts)
|
|||||||
s->params.blend_params = NULL;
|
s->params.blend_params = NULL;
|
||||||
for (int i = 0; i < s->nb_inputs; i++) {
|
for (int i = 0; i < s->nb_inputs; i++) {
|
||||||
LibplaceboInput *in = &s->inputs[i];
|
LibplaceboInput *in = &s->inputs[i];
|
||||||
|
int high_fps = av_cmp_q(in->link->frame_rate, outlink->frame_rate) > 0;
|
||||||
if (in->qstatus != PL_QUEUE_OK)
|
if (in->qstatus != PL_QUEUE_OK)
|
||||||
continue;
|
continue;
|
||||||
|
s->params.skip_caching_single_frame = high_fps;
|
||||||
update_crops(ctx, in, &target, out->pts * av_q2d(outlink->time_base));
|
update_crops(ctx, in, &target, out->pts * av_q2d(outlink->time_base));
|
||||||
pl_render_image_mix(in->renderer, &in->mix, &target, &s->params);
|
pl_render_image_mix(in->renderer, &in->mix, &target, &s->params);
|
||||||
s->params.skip_target_clearing = true;
|
s->params.skip_target_clearing = true;
|
||||||
@@ -1198,9 +1198,6 @@ static int libplacebo_config_output(AVFilterLink *outlink)
|
|||||||
if (s->fps.num) {
|
if (s->fps.num) {
|
||||||
outlink->frame_rate = s->fps;
|
outlink->frame_rate = s->fps;
|
||||||
outlink->time_base = av_inv_q(s->fps);
|
outlink->time_base = av_inv_q(s->fps);
|
||||||
s->skip_cache = av_cmp_q(inlink->frame_rate, s->fps) > 0;
|
|
||||||
} else {
|
|
||||||
s->skip_cache = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Static variables */
|
/* Static variables */
|
||||||
|
Reference in New Issue
Block a user