wang-bin / QtAV

A cross-platform multimedia framework based on Qt and FFmpeg. 基于Qt和FFmpeg的跨平台高性能音视频播放框架. Recommand to use new sdk https://github.com/wang-bin/mdk-sdk
http://qtav.org
3.94k stars 1.5k forks source link

error: redefinition of 'const GUID& __mingw_uuidof() [with T = ID3D11VideoContext; #1417

Open mhao1999 opened 1 year ago

mhao1999 commented 1 year ago

QtAV, Qt version and platform

Not sure QtAV version, git clone master branch on 10/29/2022 commit fdc613dc99304f208cff0bb25b3ded14bb993237 Qt version: 5.15.5 Windows 10, msys2/ming32

or commit id if not using release version

Reproduction steps

msys2 and mingw32 path are: C:\msys64\mingw32 qtav source code path is: C:\msys64\home\QtAV I open a msys2 terminal windows with administrator role and navigate to the folder: C:\msys64\home\QtAV\msys2 issue a command: makepkg-mingw -sCLf

I downloaded dependencies from https://sourceforge.net/projects/qtav/files/depends/QtAV-depends-windows-x86+x64.7z/download and unzip and place files in /include and /lib to c:\msys64\mingw32\include and c:\msys64\mingw32\lib seperately and do: export CPATH=c:/msys64/mingw32/include:$CPATH export LIBRARY_PATH=c:/msys64/mingw32/lib:$LIBRARY_PATH export LD_LIBRARY_PATH=c:/msys64/mingw32/lib:$LD_LIBRARY_PATH

Expected behavior

QtAV modules will be generated and I can use it in a qml project

Actual behavior

make failed, the details are as below (part): C:/msys64/mingw32/include/libavutil/frame.h:279:13: note: declared here 279 | int64_t pkt_pts; | ^~~ make[2]: [src/CMakeFiles/QtAV.dir/build.make:1379: src/CMakeFiles/QtAV.dir/codec/video/VideoDecoderD3D11.cpp.obj] Error 1 In file included from C:/msys64/mingw32/include/corecrt.h:10, from C:/msys64/mingw32/include/crtdefs.h:10, from C:/msys64/mingw32/include/stddef.h:7, from C:/msys64/mingw32/lib/gcc/i686-w64-mingw32/12.2.0/include/stddef.h:1, from C:/msys64/mingw32/include/c++/12.2.0/cstddef:50, from C:/msys64/mingw32/include/QtCore/qglobal.h:46, from C:/msys64/mingw32/include/QtCore/qnamespace.h:43, from C:/msys64/mingw32/include/QtCore/qmargins.h:43, from C:/msys64/mingw32/include/QtCore/qrect.h:43, from C:/msys64/mingw32/include/QtCore/QRect:1, from C:/msys64/home/QtAV/msys2/src/qtav/src/directx/D3D11VP.h:24, from C:/msys64/home/QtAV/msys2/src/qtav/src/directx/D3D11VP.cpp:22: C:/msys64/home/QtAV/msys2/src/qtav/src/directx/D3D11VP.cpp:29:1: error: redefinition of 'const GUID& mingw_uuidof() [with T = ID3D11VideoContext; GUID = GUID]' 29 | CRT_UUID_DECL(ID3D11VideoContext,0x61F21C45,0x3C0E,0x4a74,0x9C,0xEA,0x67,0x10,0x0D,0x9A,0xD5,0xE4) | ^~~~~~~ C:/msys64/mingw32/include/d3d11.h:9577:1: note: 'const GUID& mingw_uuidof() [with T = ID3D11VideoContext; GUID = GUID]' previously declared here 9577 | CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) | ^~~~~~~ C:/msys64/home/QtAV/msys2/src/qtav/src/directx/D3D11VP.cpp:29:1: error: redefinition of 'const GUID& __mingw_uuidof() [with T = ID3D11VideoContext; GUID = GUID]' 29 | CRT_UUID_DECL(ID3D11VideoContext,0x61F21C45,0x3C0E,0x4a74,0x9C,0xEA,0x67,0x10,0x0D,0x9A,0xD5,0xE4) | ^~~~~~~ C:/msys64/mingw32/include/d3d11.h:9577:1: note: 'const GUID& mingw_uuidof() [with T = ID3D11VideoContext; GUID = GUID]' previously declared here 9577 | CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) | ^~~~~~~ C:/msys64/home/QtAV/msys2/src/qtav/src/directx/D3D11VP.cpp:30:1: error: redefinition of 'const GUID& mingw_uuidof() [with T = ID3D11VideoDevice; GUID = GUID]' 30 | CRT_UUID_DECL(ID3D11VideoDevice,0x10EC4D5B,0x975A,0x4689,0xB9,0xE4,0xD0,0xAA,0xC3,0x0F,0xE3,0x33) | ^~~~~~~ C:/msys64/mingw32/include/d3d11.h:9009:1: note: 'const GUID& mingw_uuidof() [with T = ID3D11VideoDevice; GUID = GUID]' previously declared here 9009 | CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33) | ^~~~~~~ C:/msys64/home/QtAV/msys2/src/qtav/src/directx/D3D11VP.cpp:30:1: error: redefinition of 'const GUID& mingw_uuidof() [with T = ID3D11VideoDevice; GUID = GUID]' 30 | CRT_UUID_DECL(ID3D11VideoDevice,0x10EC4D5B,0x975A,0x4689,0xB9,0xE4,0xD0,0xAA,0xC3,0x0F,0xE3,0x33) | ^~~~~~~ C:/msys64/mingw32/include/d3d11.h:9009:1: note: 'const GUID& mingw_uuidof() [with T = ID3D11VideoDevice; GUID = GUID]' previously declared here 9009 | __CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, 0xd0,0xaa,0xc3,0x0f,0xe3,0x33) | ^~~~~~~ make[2]: [src/CMakeFiles/QtAV.dir/build.make:1407: src/CMakeFiles/QtAV.dir/directx/D3D11VP.cpp.obj] Error 1 C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderDXVA.cpp: In member function 'virtual QtAV::VideoFrame QtAV::VideoDecoderDXVA::frame()': C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderDXVA.cpp:192:33: warning: 'AVFrame::pkt_pts' is deprecated [-Wdeprecated-declarations] 192 | f.setTimestamp(d.frame->pkt_pts/1000.0); | ^~~ In file included from C:/msys64/mingw32/include/libavcodec/avcodec.h:38, from C:/msys64/mingw32/include/libavformat/avformat.h:319, from C:/msys64/home/QtAV/msys2/src/qtav/src/QtAV/private/AVCompat.h:47, from C:/msys64/home/QtAV/msys2/src/qtav/src/QtAV/private/AVDecoder_p.h:29, from C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderFFmpegBase.h:26, from C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderFFmpegHW.h:25, from C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderD3D.h:27, from C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderDXVA.cpp:26: C:/msys64/mingw32/include/libavutil/frame.h:279:13: note: declared here 279 | int64_t pkt_pts; | ^~~ C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderDXVA.cpp:192:33: warning: 'AVFrame::pkt_pts' is deprecated [-Wdeprecated-declarations] 192 | f.setTimestamp(d.frame->pkt_pts/1000.0); | ^~~ C:/msys64/mingw32/include/libavutil/frame.h:279:13: note: declared here 279 | int64_t pkt_pts; | ^~~ C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderDXVA.cpp:192:33: warning: 'AVFrame::pkt_pts' is deprecated [-Wdeprecated-declarations] 192 | f.setTimestamp(d.frame->pkt_pts/1000.0); | ^~~ C:/msys64/mingw32/include/libavutil/frame.h:279:13: note: declared here 279 | int64_t pkt_pts; | ^~~ C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderDXVA.cpp: In member function 'virtual bool QtAV::VideoDecoderDXVAPrivate::createDevice()': C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderDXVA.cpp:272:36: warning: 'QString& QString::sprintf(const char, ...)' is deprecated: Use asprintf(), arg() or QTextStream instead [-Wdeprecated-declarations] 272 | description = QString().sprintf("DXVA2 (%.s, vendor %lu(%s), device %lu, revision %lu)", | ~~~^~~~~~~~~~~~ 273 | sizeof(d3dai.Description), d3dai.Description, | ~~~~~~~~~ 274 | d3dai.VendorId, qPrintable(vendor), d3dai.DeviceId, d3dai.Revision); | ~~~~~~~~~~~~~~~ In file included from C:/msys64/mingw32/include/QtCore/qhashfunctions.h:44, from C:/msys64/mingw32/include/QtCore/qvarlengtharray.h:47, from C:/msys64/mingw32/include/QtCore/qmetatype.h:48, from C:/msys64/mingw32/include/QtCore/QMetaType:1, from C:/msys64/home/QtAV/msys2/src/qtav/src/QtAV/QtAV_Global.h:27, from C:/msys64/home/QtAV/msys2/src/qtav/src/QtAV/AVError.h:24, from C:/msys64/home/QtAV/msys2/src/qtav/src/QtAV/AVDecoder.h:25, from C:/msys64/home/QtAV/msys2/src/qtav/src/QtAV/VideoDecoder.h:25, from C:/msys64/home/QtAV/msys2/src/qtav/src/codec/video/VideoDecoderFFmpegBase.h:25: C:/msys64/mingw32/include/QtCore/qstring.h:393:14: note: declared here 393 | QString &sprintf(const char *format, ...) Q_ATTRIBUTE_FORMAT_PRINTF(2, 3); | ^~~ make[1]: [CMakeFiles/Makefile2:162: src/CMakeFiles/QtAV.dir/all] Error 2 make: [Makefile:136: all] Error 2 ==> ERROR: A failure occurred in build(). Aborting...

Log file

set environment var QTAV_LOG=all or C++ api QtAV::setLogLevel(All) to enable log.

For Player and QMLPlayer example app, choose log level all in config page.

Sample files (optional)

NOTE: QtAV is no longer maintained, please use new sdk