[FFmpeg-trac] #9503(avutil:new): Make avutil header files -Wconversion safe

FFmpeg trac at avcodec.org
Wed Nov 10 07:39:28 EET 2021


#9503: Make avutil header files -Wconversion safe
-------------------------------------+----------------------------------
             Reporter:  mstoeckl     |                    Owner:  (none)
                 Type:  enhancement  |                   Status:  new
             Priority:  wish         |                Component:  avutil
              Version:  git-master   |               Resolution:
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+----------------------------------
Description changed by mstoeckl:

Old description:

> The header files for libavutil define a number of inline functions, like
> `av_clip_uintp2_c` and `av_ceil_log2_c` in `common.h`. When code using
> libavutil includes these headers, and the headers are stored in some path
> the compiler doesn't recognize as containing "system" headers, compiling
> the code with the `-Wconversion` flag will produce warnings for them.
>
> It would be nice if these inline functions would make all value-changing
> conversions explicit, using appropriate casts, and thus stop producing
> -Wconversion errors.
>
> I've set this to wishlist priority, because most of the time, FFmpeg
> headers are installed under /usr/include and are automatically treated as
> system headers by the compiler; so this is only an annoyance when
> installing FFmpeg to nonstandard paths. Furthermore, one can (in theory)
> configure one's build system to pass the right flags/env variables to the
> compiler so that the -Wconversion errors from the libavutil headers are
> silenced. (Unfortunately, I haven't figured this out yet for one build
> system that I am using, nor for a code analysis tool.)
>
> Note: while -Wconversion is a reasonable flag to apply for some of the
> small projects I have, this issue is not a request to make FFmpeg's
> entire code base avoid the warning.

New description:

 The header files for libavutil define a number of inline functions, like
 `av_clip_uintp2_c` and `av_ceil_log2_c` in `common.h`. When code using
 libavutil includes these headers, and the headers are stored in some path
 the compiler doesn't recognize as containing "system" headers, compiling
 the code with the `-Wconversion` flag will produce warnings for them.

 It would be nice if these inline functions would make all value-changing
 conversions explicit, using appropriate casts, and thus stop producing
 -Wconversion warnings.

 I've set this to wishlist priority, because most of the time, FFmpeg
 headers are installed under /usr/include and are automatically treated as
 system headers by the compiler; so this is only an annoyance when
 installing FFmpeg to nonstandard paths. Furthermore, one can (in theory)
 configure one's build system to pass the right flags/env variables to the
 compiler so that the -Wconversion errors from the libavutil headers are
 silenced. (Unfortunately, I haven't figured this out yet for one build
 system that I am using, nor for a code analysis tool.)

 Note: while -Wconversion is a reasonable flag to apply for some of the
 small projects I have, this issue is not a request to make FFmpeg's entire
 code base avoid the warning.

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9503#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list