diff --git a/doc/APIchanges b/doc/APIchanges index 7fbe3a0769..bd5a76cbe6 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2025-03-28 API changes, most recent first: +2025-09-xx - xxxxxxxxxx - lsws 9.3.100 - swscale.h + Add SWS_UNSTABLE flag. + 2025-09-01 - xxxxxxxx - lavc 62.14.100 - packet.h Add AV_PKT_DATA_EXIF diff --git a/doc/scaler.texi b/doc/scaler.texi index a9ed10e34e..0c2b952395 100644 --- a/doc/scaler.texi +++ b/doc/scaler.texi @@ -68,6 +68,10 @@ Select full chroma input. @item bitexact Enable bitexact output. + +@item unstable +Allow the use of experimental new code. May subtly affect the output or even +produce wrong results. For testing only. @end table @item srcw @var{(API only)} diff --git a/libswscale/options.c b/libswscale/options.c index feecae8c89..06e51dcfe9 100644 --- a/libswscale/options.c +++ b/libswscale/options.c @@ -50,6 +50,7 @@ static const AVOption swscale_options[] = { { "full_chroma_inp", "full chroma input", 0, AV_OPT_TYPE_CONST, { .i64 = SWS_FULL_CHR_H_INP }, .flags = VE, .unit = "sws_flags" }, { "bitexact", "bit-exact mode", 0, AV_OPT_TYPE_CONST, { .i64 = SWS_BITEXACT }, .flags = VE, .unit = "sws_flags" }, { "error_diffusion", "error diffusion dither", 0, AV_OPT_TYPE_CONST, { .i64 = SWS_ERROR_DIFFUSION}, .flags = VE, .unit = "sws_flags" }, + { "unstable", "allow experimental new code", 0, AV_OPT_TYPE_CONST, { .i64 = SWS_UNSTABLE }, .flags = VE, .unit = "sws_flags" }, { "param0", "scaler param 0", OFFSET(scaler_params[0]), AV_OPT_TYPE_DOUBLE, { .dbl = SWS_PARAM_DEFAULT }, INT_MIN, INT_MAX, VE }, { "param1", "scaler param 1", OFFSET(scaler_params[1]), AV_OPT_TYPE_DOUBLE, { .dbl = SWS_PARAM_DEFAULT }, INT_MIN, INT_MAX, VE }, diff --git a/libswscale/swscale.h b/libswscale/swscale.h index 39e23075a4..345e5458ce 100644 --- a/libswscale/swscale.h +++ b/libswscale/swscale.h @@ -155,6 +155,13 @@ typedef enum SwsFlags { SWS_ACCURATE_RND = 1 << 18, SWS_BITEXACT = 1 << 19, + /** + * Allow using experimental new code paths. This may be faster, slower, + * or produce different output, with semantics subject to change at any + * point in time. For testing and debugging purposes only. + */ + SWS_UNSTABLE = 1 << 20, + /** * Deprecated flags. */ diff --git a/libswscale/version.h b/libswscale/version.h index 79f5c69f1c..51eb013a29 100644 --- a/libswscale/version.h +++ b/libswscale/version.h @@ -28,7 +28,7 @@ #include "version_major.h" -#define LIBSWSCALE_VERSION_MINOR 2 +#define LIBSWSCALE_VERSION_MINOR 3 #define LIBSWSCALE_VERSION_MICRO 100 #define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \