summaryrefslogtreecommitdiff
path: root/libavcodec/mf_utils.h
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2020-05-25 13:26:04 +0300
committerMartin Storsjö <martin@martin.st>2020-05-27 00:19:32 +0300
commit6c33a230e46a1434e32acf0004c6ffb983c2b566 (patch)
tree125d19016d183835252e969123e8d0fb2de921e4 /libavcodec/mf_utils.h
parent869f655e2e92c739a4d7b1fb2f4d331a412f3024 (diff)
downloadffmpeg-6c33a230e46a1434e32acf0004c6ffb983c2b566.tar.gz
mfenc: Avoid including codecapi.h, fix building in UWP mode with clang
Including codecapi.h and uuids.h in UWP mode doesn't define all defines properly, ending up with constructs that MSVC silently tolerates, but that clang errors out on, like this: DEFINE_GUIDEX(CODECAPI_AVEncCommonFormatConstraint); Just avoid including codecapi.h completely and hardcode the last few enum values we use from there. We already use local versions of most enums from there, due to older mingw-w64 headers being incomplete. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec/mf_utils.h')
-rw-r--r--libavcodec/mf_utils.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/libavcodec/mf_utils.h b/libavcodec/mf_utils.h
index 4373e62ed2..d514723c3b 100644
--- a/libavcodec/mf_utils.h
+++ b/libavcodec/mf_utils.h
@@ -28,15 +28,12 @@
// of including it though, through strmif.h via dshow.h. And on mingw, the
// mf*.h headers below indirectly include strmif.h.)
#include <icodecapi.h>
-// Clang in MSVC mode fails on codecapi.h if we haven't included uuids.h
-// before, while it seems to work fine with MSVC itself.
-#include <uuids.h>
#else
#include <dshow.h>
-#endif
// Older versions of mingw-w64 need codecapi.h explicitly included, while newer
// ones include it implicitly from dshow.h (via uuids.h).
#include <codecapi.h>
+#endif
#include <mfapi.h>
#include <mferror.h>
#include <mfobjects.h>
@@ -134,6 +131,16 @@ enum {
ff_METransformMarker,
};
+// These do exist in all supported headers, but are manually defined here
+// to avoid having to include codecapi.h, as there's problems including that
+// header when targeting UWP (where including it with MSVC seems to work,
+// but fails when built with clang in MSVC mode).
+enum ff_eAVEncH264VProfile {
+ ff_eAVEncH264VProfile_Base = 66,
+ ff_eAVEncH264VProfile_Main = 77,
+ ff_eAVEncH264VProfile_High = 100,
+};
+
char *ff_hr_str_buf(char *buf, size_t size, HRESULT hr);
#define ff_hr_str(hr) ff_hr_str_buf((char[80]){0}, 80, hr)