[FFmpeg-devel] [PATCH v4 1/3] lavu/opt: Rename AV_OPT_FLAG_RUNTIME_PARAM to ...POST_INIT_SETTABLE_PARAM
Andrew Sayers
ffmpeg-devel at pileofstuff.org
Tue Jul 2 12:08:38 EEST 2024
The old name could be misread as the opposite of "AV_OPT_FLAG_READONLY" -
some things can be set at runtime, others are read-only. Clarify that
this refers to options that can be set after the struct is initialized.
---
doc/APIchanges | 4 ++++
libavutil/opt.h | 15 ++++++++++++++-
libavutil/version.h | 3 ++-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index f1828436e5..8217c391cb 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -2,6 +2,10 @@ The last version increases of all libraries were on 2024-03-07
API changes, most recent first:
+2024-07-02 - xxxxxxxxxx - lavu 59.28.100 - opt.h
+ Deprecate AV_OPT_FLAG_RUNTIME_PARAM and replace it with
+ AV_OPT_FLAG_POST_INIT_SETTABLE_PARAM.
+
2024-06-28 - xxxxxxxxxx - lavu 59.27.100 - stereo3d.h
Add AV_STEREO3D_UNSPEC and AV_STEREO3D_VIEW_UNSPEC.
diff --git a/libavutil/opt.h b/libavutil/opt.h
index 07e27a9208..b78c3406fa 100644
--- a/libavutil/opt.h
+++ b/libavutil/opt.h
@@ -53,6 +53,9 @@
* question is allowed to access the field. This allows us to extend the
* semantics of those fields without breaking API compatibility.
*
+ * Note: only options with the AV_OPT_FLAG_POST_INIT_SETTABLE_PARAM flag can be
+ * modified after the struct is initialized.
+ *
* @section avoptions_scope Scope of AVOptions
*
* AVOptions is designed to support any set of multimedia configuration options
@@ -300,9 +303,19 @@ enum AVOptionType{
#define AV_OPT_FLAG_BSF_PARAM (1 << 8)
/**
- * A generic parameter which can be set by the user at runtime.
+ * A generic parameter which can be set by the user after the struct is initialized.
+ */
+#define AV_OPT_FLAG_POST_INIT_SETTABLE_PARAM (1 << 15)
+#if FF_API_OPT_FLAG_RUNTIME_PARAM
+/**
+ * A generic parameter which can be set by the user after the struct is initialized.
+ *
+ * @deprecated Renamed for clarity - to continue using this feature,
+ * please do s/AV_OPT_FLAG_RUNTIME_PARAM/AV_OPT_FLAG_POST_INIT_SETTABLE_PARAM/g
+ * throughout your codebase
*/
#define AV_OPT_FLAG_RUNTIME_PARAM (1 << 15)
+#endif
/**
* A generic parameter which can be set by the user for filtering.
*/
diff --git a/libavutil/version.h b/libavutil/version.h
index a8962734e7..c03681f802 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 59
-#define LIBAVUTIL_VERSION_MINOR 27
+#define LIBAVUTIL_VERSION_MINOR 28
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
@@ -113,6 +113,7 @@
#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_H274_FILM_GRAIN_VCS (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 60)
+#define FF_API_OPT_FLAG_RUNTIME_PARAM (LIBAVUTIL_VERSION_MAJOR < 60)
/**
* @}
--
2.45.2
More information about the ffmpeg-devel
mailing list