[FFmpeg-devel] [discussion] AVOptionRange fields

Diederick C. Niehorster dcnieho at gmail.com
Sun Jun 6 00:36:49 EEST 2021


When implementing the avdevice capabilities API, I have run into three
things regarding the AVOptionRange fields (libavutil/opt.h, lines
310-328)

1. an enum AVOptionType field "type" should be added. Else user cannot
know how to interpret the returned value(s), which are all doubles.
NB: for the avdevice capabilities API, option type is an
implementation detail, and cannot be queried by the user.
2. a field "is_set" should be added. 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 not ideal. an is_set field would alleviate the
use of special values.
3. the component_min, component_max fields should be documented
better. "Value's component range" is not informative and the only use
of it in the codebase (av_opt_query_ranges_default() in opt.c, lines
1848--1918 or the original commit adding it, a8e0d51b, does not help
elucidate what its for). for e.g. an fps, the value range would be
from min_fps to max_fps. What would the associated component range
(min/max) be?

Any thoughts before i add the two fields suggested fields?

Thanks and all the best,
Dee


More information about the ffmpeg-devel mailing list