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

2018-04-21 Thread Hendrik Leppkes
On Sun, Apr 22, 2018 at 1:50 AM, Carl Eugen Hoyos  wrote:
> 2018-04-22 1:29 GMT+02:00, Hendrik Leppkes :
>> On Sun, Apr 22, 2018 at 1:02 AM, Carl Eugen Hoyos 
>> wrote:
>>> 2018-04-22 0:53 GMT+02:00, Reino Wijnsma :
 On 21-4-2018 22:43, Carl Eugen Hoyos  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
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


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

2018-04-21 Thread Carl Eugen Hoyos
2018-04-22 1:29 GMT+02:00, Hendrik Leppkes :
> On Sun, Apr 22, 2018 at 1:02 AM, Carl Eugen Hoyos 
> wrote:
>> 2018-04-22 0:53 GMT+02:00, Reino Wijnsma :
>>> On 21-4-2018 22:43, Carl Eugen Hoyos  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?

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


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

2018-04-21 Thread Hendrik Leppkes
On Sun, Apr 22, 2018 at 1:02 AM, Carl Eugen Hoyos  wrote:
> 2018-04-22 0:53 GMT+02:00, Reino Wijnsma :
>> On 21-4-2018 22:43, Carl Eugen Hoyos  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.
That particular code in hlsenc has always been very weird though,
maybe configure should just check support for that format code instead
of somehow probing that at runtime.

- Hendrik
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


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

2018-04-21 Thread Carl Eugen Hoyos
2018-04-22 0:53 GMT+02:00, Reino Wijnsma :
> On 21-4-2018 22:43, Carl Eugen Hoyos  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.

Note that I believe the warning indicates a possible
crash on runtime.

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


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

2018-04-21 Thread Reino Wijnsma
On 21-4-2018 22:43, Carl Eugen Hoyos  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
 #include 
  ^~
compilation terminated.
make: *** [ffbuild/common.mak:60: libavformat/hlsenc.o] Error 1

Also when I use the makefile it errors out right from the start:

CC  libavdevice/alldevices.o
In file included from ./libavutil/common.h:491:0,
 from ./libavutil/avutil.h:296,
 from ./libavutil/samplefmt.h:24,
 from ./libavcodec/avcodec.h:31,
 from ./libavformat/avformat.h:319,
 from ./libavformat/internal.h:27,
 from libavdevice/alldevices.c:23:
./libavutil/internal.h:250:10: fatal error: crtversion.h: No such file or 
directory
 #include 
  ^~
compilation terminated.
make: *** [ffbuild/common.mak:60: libavdevice/alldevices.o] Error 1

-- Reino

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


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

2018-04-21 Thread Carl Eugen Hoyos
Hi!

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
From 7a1ceb3c66c477edf83a29845efe42a52452b98f Mon Sep 17 00:00:00 2001
From: Carl Eugen Hoyos 
Date: Sat, 21 Apr 2018 22:37:02 +0200
Subject: [PATCH] configure: Assume MSVCRT when compiling with MingW.

Should fix several issues with format conversions unsupported on Windows
and a compilation warning:
libavformat/hlsenc.c:1676:63: warning: unknown conversion type character 's' in format
---
 configure |2 ++
 1 file changed, 2 insertions(+)

diff --git a/configure b/configure
index dee507c..ab2f490 100755
--- a/configure
+++ b/configure
@@ -5304,6 +5304,7 @@ probe_libc(){
 add_${pfx}cppflags -D__printf__=__gnu_printf__
 test_${pfx}cpp_condition windows.h "!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600" &&
 add_${pfx}cppflags -D_WIN32_WINNT=0x0600
+eval ${pfx}libc_type=msvcrt
 elif test_${pfx}cpp_condition _mingw.h "defined __MINGW_VERSION"  ||
  test_${pfx}cpp_condition _mingw.h "defined __MINGW32_VERSION"; then
 eval ${pfx}libc_type=mingw32
@@ -5317,6 +5318,7 @@ probe_libc(){
 add_${pfx}cppflags -D_WIN32_WINNT=0x0600
 eval test \$${pfx_no_}cc_type = "gcc" &&
 add_${pfx}cppflags -D__printf__=__gnu_printf__
+eval ${pfx}libc_type=msvcrt
 elif test_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then
 eval ${pfx}libc_type=msvcrt
 if test_${pfx}cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION < 14"; then
-- 
1.7.10.4

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel