[FFmpeg-devel] [PATCH 24/35] avutil/opt: AVOptionRange gains is_set field.

Diederick Niehorster dcnieho at gmail.com
Tue Jun 8 02:04:03 EEST 2021


When querying a range of formats of an avdevice, sometimes for a given format the queried option is not available. This is not an error as the user is asking for a valid capability, it just doesn't always apply to all the matching formats of the device. This is now communicated through a special value (like 0 or -1), but that is a problem (like always with special values). The is_set field alleviates the use of special values. This will be used when implementing the avdevice capabilities API for avdevice/dshow in a later commit

Signed-off-by: Diederick Niehorster <dcnieho at gmail.com>
---
 libavutil/opt.c     | 1 +
 libavutil/opt.h     | 5 +++++
 libavutil/version.h | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavutil/opt.c b/libavutil/opt.c
index 4124efd9b6..ab127b30fa 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -1865,6 +1865,7 @@ int av_opt_query_ranges_default(AVOptionRanges **ranges_arg, void *obj, const ch
     ranges->nb_ranges = 1;
     ranges->nb_components = 1;
     range->is_range = 1;
+    range->is_set = 1;
     range->value_min = field->min;
     range->value_max = field->max;
 
diff --git a/libavutil/opt.h b/libavutil/opt.h
index c2329e5589..ac0b4567a6 100644
--- a/libavutil/opt.h
+++ b/libavutil/opt.h
@@ -325,6 +325,11 @@ typedef struct AVOptionRange {
      * If set to 1 the struct encodes a range, if set to 0 a single value.
      */
     int is_range;
+    /**
+     * Is set flag.
+     * If set to 1 the struct contains a value, if set to 0, the range is empty.
+     */
+    int is_set;
 } AVOptionRange;
 
 /**
diff --git a/libavutil/version.h b/libavutil/version.h
index e11eaa20d0..34b83112de 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  57
-#define LIBAVUTIL_VERSION_MINOR   0
+#define LIBAVUTIL_VERSION_MINOR   1
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
-- 
2.28.0.windows.1



More information about the ffmpeg-devel mailing list