[FFmpeg-devel] [PATCH] avfilter/vf_tonemap: don't use NAN constant as an initializer
Vittorio Giovara
vittorio.giovara at gmail.com
Fri Sep 8 15:39:28 EEST 2017
On Thu, Sep 7, 2017 at 11:26 PM, James Almer <jamrial at gmail.com> wrote:
> 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.
>
Another option, although not ideal, could be to make this filter dependent
on vf_zscale, which suffers from the same bug but is disabled on those
architecture because zimg is not installed.
--
Vittorio
More information about the ffmpeg-devel
mailing list