summaryrefslogtreecommitdiff
path: root/libavfilter/vf_lut3d.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2022-04-26 19:58:28 +0200
committerPaul B Mahol <onemda@gmail.com>2022-04-26 20:07:04 +0200
commit452d611fc70cf7c37df5c68fecedc0e38981e94a (patch)
tree010615f2dbd399feeb52a94d4e00c0630d11d2ca /libavfilter/vf_lut3d.c
parent1da3394adb04f6fa97f8730a9ac6f25bc4c440b4 (diff)
downloadffmpeg-452d611fc70cf7c37df5c68fecedc0e38981e94a.tar.gz
avfilter/vf_lut3d: allow to control when to upload CLUT for haldclut
Diffstat (limited to 'libavfilter/vf_lut3d.c')
-rw-r--r--libavfilter/vf_lut3d.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/libavfilter/vf_lut3d.c b/libavfilter/vf_lut3d.c
index 1880141e51..a5190b6688 100644
--- a/libavfilter/vf_lut3d.c
+++ b/libavfilter/vf_lut3d.c
@@ -1218,6 +1218,11 @@ static const AVOption lut3d_haldclut_options[] = {
#if CONFIG_LUT3D_FILTER
{ "file", "set 3D LUT file name", OFFSET(file), AV_OPT_TYPE_STRING, {.str=NULL}, .flags = FLAGS },
#endif
+#if CONFIG_HALDCLUT_FILTER
+ { "clut", "when to process CLUT", OFFSET(clut), AV_OPT_TYPE_INT, {.i64=1}, 0, 1, .flags = TFLAGS, "clut" },
+ { "first", "process only first CLUT, ignore rest", 0, AV_OPT_TYPE_CONST, {.i64=0}, .flags = TFLAGS, "clut" },
+ { "all", "process all CLUTs", 0, AV_OPT_TYPE_CONST, {.i64=1}, .flags = TFLAGS, "clut" },
+#endif
COMMON_OPTIONS
};
@@ -1519,12 +1524,15 @@ static int update_apply_clut(FFFrameSync *fs)
return ret;
if (!second)
return ff_filter_frame(ctx->outputs[0], master);
- if (lut3d->clut_float)
- update_clut_float(ctx->priv, second);
- else if (lut3d->clut_planar)
- update_clut_planar(ctx->priv, second);
- else
- update_clut_packed(ctx->priv, second);
+ if (lut3d->clut || !lut3d->got_clut) {
+ if (lut3d->clut_float)
+ update_clut_float(ctx->priv, second);
+ else if (lut3d->clut_planar)
+ update_clut_planar(ctx->priv, second);
+ else
+ update_clut_packed(ctx->priv, second);
+ lut3d->got_clut = 1;
+ }
out = apply_lut(inlink, master);
return ff_filter_frame(ctx->outputs[0], out);
}