[FFmpeg-devel] [PATCH] avfilter/vf_tonemap: don't use NAN constant as an initializer
James Almer
jamrial at gmail.com
Fri Sep 8 00:26:50 EEST 2017
On 9/7/2017 6:16 PM, Michael Niedermayer wrote:
> On Wed, Sep 06, 2017 at 10:59:13PM -0300, James Almer wrote:
>> Netbsd:
>> src/libavfilter/vf_tonemap.c:314: error: initializer element is not constant
>> src/libavfilter/vf_tonemap.c:314: error: (near initialization for 'tonemap_options[8].default_val.dbl')
>>
>> DJGPP
>> src/libavfilter/vf_tonemap.c:314:87: error: initializer element is not constant
>> { "param", "tonemap parameter", OFFSET(param), AV_OPT_TYPE_DOUBLE, {.dbl = NAN}, DBL_MIN, DBL_MAX, FLAGS },
>> ^
>> src/libavfilter/vf_tonemap.c:314:87: note: (near initialization for 'tonemap_options[8].default_val.dbl')
>>
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>> libavfilter/vf_tonemap.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavfilter/vf_tonemap.c b/libavfilter/vf_tonemap.c
>> index 10308bdb16..d2c7ffa831 100644
>> --- a/libavfilter/vf_tonemap.c
>> +++ b/libavfilter/vf_tonemap.c
>> @@ -311,7 +311,7 @@ static const AVOption tonemap_options[] = {
>> { "reinhard", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_REINHARD}, 0, 0, FLAGS, "tonemap" },
>> { "hable", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_HABLE}, 0, 0, FLAGS, "tonemap" },
>> { "mobius", 0, 0, AV_OPT_TYPE_CONST, {.i64 = TONEMAP_MOBIUS}, 0, 0, FLAGS, "tonemap" },
>> - { "param", "tonemap parameter", OFFSET(param), AV_OPT_TYPE_DOUBLE, {.dbl = NAN}, DBL_MIN, DBL_MAX, FLAGS },
>> + { "param", "tonemap parameter", OFFSET(param), AV_OPT_TYPE_DOUBLE, {.dbl = nan("")}, DBL_MIN, DBL_MAX, FLAGS },
>
> building shared libs: (seems ok with static)
> on linux x86-64
>
> src/libavfilter/vf_tonemap.c:314:108: error: initializer element is not a compile-time constant
> { "param", "tonemap parameter", __builtin_offsetof(TonemapContext, param), AV_OPT_TYPE_DOUBLE, {.dbl = nan("")}, 2.2250738585072014e-308, 1.7976931348623157e+308, 16 | (1<<16) },
What can we do, then? NAN and nan("") are sometimes compile-time
constants and sometimes not, apparently depending on build type and
target system.
CCing Vittorio as he's the author of the filter.
More information about the ffmpeg-devel
mailing list