This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 62c64b818d31cabfaffd21dcc186c3d7bdbc35b7
Author:     Kacper Michajłow <[email protected]>
AuthorDate: Wed Sep 30 08:48:01 2026 +0200
Commit:     Kacper Michajłow <[email protected]>
CommitDate: Thu Oct 1 14:31:15 2026 +0000

    avfilter/vf_libplacebo: reject commands for the negotiated options
    
    The colorspace, range and alpha_mode options are only read when the
    formats are negotiated, so commands changing them were accepted without
    any effect. Make them static like chroma_location, and document the
    options that can not be changed with commands.
    
    Signed-off-by: Kacper Michajłow <[email protected]>
---
 doc/filters.texi            |  5 ++++-
 libavfilter/vf_libplacebo.c | 20 ++++++++++----------
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index bc33c79848..aa3b37490b 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -17733,7 +17733,10 @@ offering the maximum possible speed.
 @end table
 
 @subsection Commands
-This filter supports almost all of the above options as @ref{commands}.
+This filter supports almost all of the above options as @ref{commands}. The
+options negotiated with the filtergraph, @option{format}, @option{colorspace},
+@option{range}, @option{chroma_location} and @option{alpha_mode}, are fixed
+once the filtergraph is configured and can not be changed with commands.
 
 @subsection Examples
 @itemize
diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
index b7097c2740..d42518d6c7 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -1617,8 +1617,8 @@ static const AVOption libplacebo_options[] = {
     { "extra_opts", "Pass extra libplacebo-specific options using a 
:-separated list of key=value pairs", OFFSET(extra_opts), AV_OPT_TYPE_DICT, 
.flags = DYNAMIC },
     { "shader_cache",  "Set shader cache path", OFFSET(shader_cache), 
AV_OPT_TYPE_STRING, {.str = NULL}, .flags = STATIC },
 
-    {"colorspace", "select colorspace", OFFSET(colorspace), AV_OPT_TYPE_INT, 
{.i64=-1}, -1, AVCOL_SPC_NB-1, DYNAMIC, .unit = "colorspace"},
-    {"auto", "keep the same colorspace",  0, AV_OPT_TYPE_CONST, {.i64=-1},     
                     INT_MIN, INT_MAX, STATIC, .unit = "colorspace"},
+    {"colorspace", "select colorspace", OFFSET(colorspace), AV_OPT_TYPE_INT, 
{.i64=-1}, -1, AVCOL_SPC_NB-1, STATIC, .unit = "colorspace"},
+    {"auto", "use the negotiated colorspace",  0, AV_OPT_TYPE_CONST, 
{.i64=-1},                          INT_MIN, INT_MAX, STATIC, .unit = 
"colorspace"},
     {"gbr",                        NULL,  0, AV_OPT_TYPE_CONST, 
{.i64=AVCOL_SPC_RGB},               INT_MIN, INT_MAX, STATIC, .unit = 
"colorspace"},
     {"bt709",                      NULL,  0, AV_OPT_TYPE_CONST, 
{.i64=AVCOL_SPC_BT709},             INT_MIN, INT_MAX, STATIC, .unit = 
"colorspace"},
     {"unknown",                    NULL,  0, AV_OPT_TYPE_CONST, 
{.i64=AVCOL_SPC_UNSPECIFIED},       INT_MIN, INT_MAX, STATIC, .unit = 
"colorspace"},
@@ -1630,8 +1630,8 @@ static const AVOption libplacebo_options[] = {
     {"bt2020c",                    NULL,  0, AV_OPT_TYPE_CONST, 
{.i64=AVCOL_SPC_BT2020_CL},         INT_MIN, INT_MAX, STATIC, .unit = 
"colorspace"},
     {"ictcp",                      NULL,  0, AV_OPT_TYPE_CONST, 
{.i64=AVCOL_SPC_ICTCP},             INT_MIN, INT_MAX, STATIC, .unit = 
"colorspace"},
 
-    {"range", "select color range", OFFSET(color_range), AV_OPT_TYPE_INT, 
{.i64=-1}, -1, AVCOL_RANGE_NB-1, DYNAMIC, .unit = "range"},
-    {"auto",  "keep the same color range",   0, AV_OPT_TYPE_CONST, {.i64=-1},  
                     0, 0, STATIC, .unit = "range"},
+    {"range", "select color range", OFFSET(color_range), AV_OPT_TYPE_INT, 
{.i64=-1}, -1, AVCOL_RANGE_NB-1, STATIC, .unit = "range"},
+    {"auto",  "use the negotiated color range",   0, AV_OPT_TYPE_CONST, 
{.i64=-1},                       0, 0, STATIC, .unit = "range"},
     {"unspecified",                  NULL,   0, AV_OPT_TYPE_CONST, 
{.i64=AVCOL_RANGE_UNSPECIFIED},  0, 0, STATIC, .unit = "range"},
     {"unknown",                      NULL,   0, AV_OPT_TYPE_CONST, 
{.i64=AVCOL_RANGE_UNSPECIFIED},  0, 0, STATIC, .unit = "range"},
     {"limited",                      NULL,   0, AV_OPT_TYPE_CONST, 
{.i64=AVCOL_RANGE_MPEG},         0, 0, STATIC, .unit = "range"},
@@ -1696,12 +1696,12 @@ static const AVOption libplacebo_options[] = {
     {"270",                            NULL,  0, AV_OPT_TYPE_CONST, 
{.i64=PL_ROTATION_270}, .flags = STATIC, .unit = "rotation"},
     {"360",                            NULL,  0, AV_OPT_TYPE_CONST, 
{.i64=PL_ROTATION_360}, .flags = STATIC, .unit = "rotation"},
 
-    {"alpha_mode", "select alpha moda", OFFSET(alpha_mode), AV_OPT_TYPE_INT, 
{.i64=-1}, -1, AVALPHA_MODE_NB-1, DYNAMIC, .unit = "alpha_mode"},
-    {"auto", "keep the same alpha mode",  0, AV_OPT_TYPE_CONST, {.i64=-1},     
                         0, 0, DYNAMIC, .unit = "alpha_mode"},
-    {"unspecified",                      NULL, 0, AV_OPT_TYPE_CONST, 
{.i64=AVALPHA_MODE_UNSPECIFIED},   0, 0, DYNAMIC, .unit = "alpha_mode"},
-    {"unknown",                          NULL, 0, AV_OPT_TYPE_CONST, 
{.i64=AVALPHA_MODE_UNSPECIFIED},   0, 0, DYNAMIC, .unit = "alpha_mode"},
-    {"premultiplied",                    NULL, 0, AV_OPT_TYPE_CONST, 
{.i64=AVALPHA_MODE_PREMULTIPLIED}, 0, 0, DYNAMIC, .unit = "alpha_mode"},
-    {"straight",                         NULL, 0, AV_OPT_TYPE_CONST, 
{.i64=AVALPHA_MODE_STRAIGHT},      0, 0, DYNAMIC, .unit = "alpha_mode"},
+    {"alpha_mode", "select alpha moda", OFFSET(alpha_mode), AV_OPT_TYPE_INT, 
{.i64=-1}, -1, AVALPHA_MODE_NB-1, STATIC, .unit = "alpha_mode"},
+    {"auto", "use the negotiated alpha mode",  0, AV_OPT_TYPE_CONST, 
{.i64=-1},                              0, 0, STATIC, .unit = "alpha_mode"},
+    {"unspecified",                      NULL, 0, AV_OPT_TYPE_CONST, 
{.i64=AVALPHA_MODE_UNSPECIFIED},   0, 0, STATIC, .unit = "alpha_mode"},
+    {"unknown",                          NULL, 0, AV_OPT_TYPE_CONST, 
{.i64=AVALPHA_MODE_UNSPECIFIED},   0, 0, STATIC, .unit = "alpha_mode"},
+    {"premultiplied",                    NULL, 0, AV_OPT_TYPE_CONST, 
{.i64=AVALPHA_MODE_PREMULTIPLIED}, 0, 0, STATIC, .unit = "alpha_mode"},
+    {"straight",                         NULL, 0, AV_OPT_TYPE_CONST, 
{.i64=AVALPHA_MODE_STRAIGHT},      0, 0, STATIC, .unit = "alpha_mode"},
 
     { "upscaler", "Upscaler function", OFFSET(upscaler), AV_OPT_TYPE_STRING, 
{.str = "spline36"}, .flags = DYNAMIC },
     { "downscaler", "Downscaler function", OFFSET(downscaler), 
AV_OPT_TYPE_STRING, {.str = "mitchell"}, .flags = DYNAMIC },

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to