[FFmpeg-devel] [PATCH]configure: Assume MSVCRT when compiling with MingW

Hendrik Leppkes h.leppkes at gmail.com
Sun Apr 22 03:43:29 EEST 2018


On Sun, Apr 22, 2018 at 1:50 AM, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
> 2018-04-22 1:29 GMT+02:00, Hendrik Leppkes <h.leppkes at gmail.com>:
>> On Sun, Apr 22, 2018 at 1:02 AM, Carl Eugen Hoyos <ceffmpeg at gmail.com>
>> wrote:
>>> 2018-04-22 0:53 GMT+02:00, Reino Wijnsma <rwijnsma at xs4all.nl>:
>>>> On 21-4-2018 22:43, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>>>>> Attached patch is supposed to fix an old issue with debug messages and
>>>>> a currently reported compilation warning that I believe also indicates
>>>>> a possible abort() on Windows:
>>>>> libavformat/hlsenc.c:1676:63: warning: unknown conversion type
>>>>> character 's' in format
>>>>> Patch untested.
>>>>>
>>>>> Please review, Carl Eugen
>>>> I'm hardly an expert, but I'm not sure this is a good idea.
>>>> After configuring FFmpeg summarizes:
>>>> [...]
>>>> C library                 msvcrt
>>>> [...]
>>>> This has always been "mingw64" before. And next:
>>>>
>>>> $ make libavformat/hlsenc.o
>>>> CC      libavformat/hlsenc.o
>>>> In file included from ./libavutil/common.h:491:0,
>>>>                  from ./libavutil/avutil.h:296,
>>>>                  from ./libavutil/avassert.h:31,
>>>>                  from libavformat/hlsenc.c:36:
>>>> ./libavutil/internal.h:250:10: fatal error: crtversion.h: No such file or
>>>> directory
>>>
>>> Thank you for testing.
>>
>> To clarify: The C library flag controls both the build and runtime
>> environment, not only the runtime environment. Usually thats
>> identical, but in the case of mingw it is not, so extra care has to be
>> taken.
>>
>>>
>>> Note that I believe the warning indicates a possible
>>> crash on runtime.
>>>
>>
>> It would only crash if you use the security-enhanced versions of the
>> format functions (ie. with a _s suffix), which we obviously don't.
>
> People repeatedly reported such crashes (they only happen
> in rare cases because debug output and/or broken streams
> are needed) - how did they change the functions?
>

This hlsenc thing is unrelated to any input data or any debug logging,
its always executed if you request the date-based filename scheme.
What you are referring to is probably related to using unsupported
format specifiers in av_log statements, which may end up in a custom
log callback that the user wrote, possibly using the secure printf
functions. But this is strftime.

Anyway nothing wrong with fixing this warning, but this was just not
the way to do it.

- Hendrik


More information about the ffmpeg-devel mailing list