[FFmpeg-devel] [PATCH 6/7] avutil/mem: Don't include avutil.h

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Sep 4 17:20:28 EEST 2023


Michael Niedermayer:
> On Sat, Sep 02, 2023 at 06:21:40PM +0200, Andreas Rheinhardt wrote:
>> It is not necessary at all. So remove it.
>> This also breaks an inclusion cycle mem.h->avutil.h->common.h->mem.h.
> 
> the mingw64 build seems not to like this
> 
> In file included from src/libavutil/getenv_utf8.h:29:0,
>                  from src/libavformat/ipfsgateway.c:24:
> src/libavutil/wchar_filename.h: In function ‘utf8towchar’:
> src/libavutil/wchar_filename.h:34:17: error: ‘EINVAL’ undeclared (first use in this function); did you mean ‘WINVER’?
>          errno = EINVAL;
>                  ^~~~~~
>                  WINVER
> src/libavutil/wchar_filename.h:34:17: note: each undeclared identifier is reported only once for each function it appears in
> src/libavutil/wchar_filename.h:39:17: error: ‘ENOMEM’ undeclared (first use in this function)
>          errno = ENOMEM;
>                  ^~~~~~
> src/libavutil/wchar_filename.h: In function ‘wchartocp’:
> src/libavutil/wchar_filename.h:55:17: error: ‘EINVAL’ undeclared (first use in this function); did you mean ‘WINVER’?
>          errno = EINVAL;
>                  ^~~~~~
>                  WINVER
> src/libavutil/wchar_filename.h:60:17: error: ‘ENOMEM’ undeclared (first use in this function)
>          errno = ENOMEM;
>                  ^~~~~~
> In file included from src/libavutil/getenv_utf8.h:29:0,
>                  from src/libavformat/ipfsgateway.c:24:
> src/libavutil/wchar_filename.h: In function ‘get_full_path_name’:
> src/libavutil/wchar_filename.h:137:17: error: ‘EINVAL’ undeclared (first use in this function); did you mean ‘WINVER’?
>          errno = EINVAL;
>                  ^~~~~~
>                  WINVER
> src/libavutil/wchar_filename.h:143:17: error: ‘ENOMEM’ undeclared (first use in this function)
>          errno = ENOMEM;
>                  ^~~~~~
> src/libavutil/wchar_filename.h: In function ‘add_extended_prefix’:
> src/libavutil/wchar_filename.h:211:21: error: ‘ENOMEM’ undeclared (first use in this function)
>              errno = ENOMEM;
>                      ^~~~~~
> src/ffbuild/common.mak:81: recipe for target 'libavformat/ipfsgateway.o' failed
> make: *** [libavformat/ipfsgateway.o] Error 1
> make: *** Waiting for unfinished jobs....
> In file included from src/libavutil/getenv_utf8.h:29:0,
>                  from src/libavformat/http.c:33:
> src/libavutil/wchar_filename.h: In function ‘utf8towchar’:
> src/libavutil/wchar_filename.h:34:17: error: ‘EINVAL’ undeclared (first use in this function); did you mean ‘WINVER’?
>          errno = EINVAL;
>                  ^~~~~~
>                  WINVER
> src/libavutil/wchar_filename.h:34:17: note: each undeclared identifier is reported only once for each function it appears in
> src/libavutil/wchar_filename.h:39:17: error: ‘ENOMEM’ undeclared (first use in this function)
>          errno = ENOMEM;
>                  ^~~~~~
> src/libavutil/wchar_filename.h: In function ‘wchartocp’:
> src/libavutil/wchar_filename.h:55:17: error: ‘EINVAL’ undeclared (first use in this function); did you mean ‘WINVER’?
>          errno = EINVAL;
>                  ^~~~~~
>                  WINVER
> src/libavutil/wchar_filename.h:60:17: error: ‘ENOMEM’ undeclared (first use in this function)
>          errno = ENOMEM;
>                  ^~~~~~
> In file included from src/libavutil/getenv_utf8.h:29:0,
>                  from src/libavformat/http.c:33:
> src/libavutil/wchar_filename.h: In function ‘get_full_path_name’:
> src/libavutil/wchar_filename.h:137:17: error: ‘EINVAL’ undeclared (first use in this function); did you mean ‘WINVER’?
>          errno = EINVAL;
>                  ^~~~~~
>                  WINVER
> src/libavutil/wchar_filename.h:143:17: error: ‘ENOMEM’ undeclared (first use in this function)
>          errno = ENOMEM;
>                  ^~~~~~
> src/libavutil/wchar_filename.h: In function ‘add_extended_prefix’:
> src/libavutil/wchar_filename.h:211:21: error: ‘ENOMEM’ undeclared (first use in this function)
>              errno = ENOMEM;
>                      ^~~~~~
> src/ffbuild/common.mak:81: recipe for target 'libavformat/http.o' failed
> make: *** [libavformat/http.o] Error 1
> 
> 
> 

Thanks for testing. I tested mingw64, but not with http or ipfsgateway
enabled. But I could have found it via checkheaders (which passes now),
but didn't.

- Andreas



More information about the ffmpeg-devel mailing list