[FFmpeg-devel] [PATCH v8 0/3] Support long file names on Windows

Soft Works softworkz at hotmail.com
Thu Jun 9 23:15:50 EEST 2022



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of nil-
> admirari at mailo.com
> Sent: Thursday, June 9, 2022 9:37 PM
> To: ffmpeg-devel at ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH v8 0/3] Support long file names on Windows
> 
> > This looks fine to me, and the discussion seems to have converged, so I'll
> > go ahead and push this.
> 
> Build is now failing: https://github.com/yt-dlp/FFmpeg-
> Builds/runs/6819319105?check_suite_focus=true.
> 
> In file included from /opt/ct-ng/i686-w64-
> mingw32/sysroot/mingw/include/dshow.h:33,
>                  from libavcodec/mf_utils.h:32,
>                  from libavcodec/mfenc.c:26:
> ./libavutil/wchar_filename.h: In function 'add_extended_prefix':
> ./libavutil/wchar_filename.h:211:9: error:
> 'wcscpy_instead_use_StringCbCopyW_or_StringCchCopyW' undeclared (first use in
> this function)
>   211 |         wcscpy(temp_w, unc_prefix);
>       |         ^~~~~~
> ./libavutil/wchar_filename.h:211:9: note: each undeclared identifier is
> reported only once for each function it appears in
> 
> wchar.h is indeed not included in wchar_filename.h.

wcscpy is defined in corecrt_wstring.h, included in string.h, 
included in winnt.h included in windef.h, included in windows.h


> Incompatible pointer types warning is still there as well:
> 
> In file included from ./libavformat/internal.h:30,
>                  from libavdevice/alldevices.c:21:
> ./libavformat/os_support.h: In function 'win32_stat':
> ./libavformat/os_support.h:241:36: warning: passing argument 2 of '_wstat64'
> from incompatible pointer type [-Wincompatible-pointer-types]
>   241 |         ret = _wstat64(filename_w, &crtstat);
>       |                                    ^~~~~~~~
>       |                                    |
>       |                                    struct _stati64 *
> In file included from ./libavformat/os_support.h:32,
>                  from ./libavformat/internal.h:30,
>                  from libavdevice/alldevices.c:21:
> /opt/ct-ng/i686-w64-mingw32/sysroot/mingw/include/sys/stat.h:129:69: note:
> expected 'struct _stat64 *' but argument is of type 'struct _stati64 *'
>   129 |   _CRTIMP int __cdecl _wstat64(const wchar_t *_Name,struct _stat64
> *_Stat);
>       |
> ~~~~~~~~~~~~~~~~^~~~~

Yea, right. We need to get rid of the 'i' in the struct
types for getting fully independent of USE_32BIT_TIME_T.

Will send an update in a minute.

Thanks for reporting.

sw


More information about the ffmpeg-devel mailing list