summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Negyokru <negyokru@inf.u-szeged.hu>2023-02-08 11:10:59 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-02-13 08:57:03 +0000
commit56e1dc813c3067d9fe1fb94f9683a16598c8b8e6 (patch)
tree94e6fb5bfafa9250dc282cb2ddcefba947fec2bf
parentd2588d9df2d0f36089e4625dce2887a912be1503 (diff)
Add check for system ffmpeg compatibility
Chromium uses the 'first_dts' field from AVStream that has been moved out from public api in ffmpeg 5.0. Although some packagers patch their ffmpeg to be compatible with chromium. Add compile time check to test compatibility. Task-number: QTBUG-110749 Change-Id: I7658b9b12cb5122b6485f063edc3280f31fe9273 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 7e46ff40ab66cd480b3eb9d82594f402dd8b563e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--configure.cmake26
1 files changed, 25 insertions, 1 deletions
diff --git a/configure.cmake b/configure.cmake
index 4670998d4..1e4cbea08 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -46,7 +46,7 @@ if(PkgConfig_FOUND)
pkg_check_modules(LCMS2 lcms2)
pkg_check_modules(FREETYPE freetype2 IMPORTED_TARGET)
pkg_check_modules(LIBXML2 libxml-2.0 libxslt IMPORTED_TARGET)
- pkg_check_modules(FFMPEG libavcodec libavformat libavutil)
+ pkg_check_modules(FFMPEG libavcodec libavformat libavutil IMPORTED_TARGET)
pkg_check_modules(OPUS opus>=1.3.1)
pkg_check_modules(VPX vpx>=1.10.0 IMPORTED_TARGET)
pkg_check_modules(LIBPCI libpci)
@@ -202,6 +202,25 @@ int main(void){
}"
)
+qt_config_compile_test(libavformat
+ LABEL "libavformat"
+ LIBRARIES
+ PkgConfig::FFMPEG
+ CODE
+"
+#include \"libavformat/version.h\"
+extern \"C\" {
+#include \"libavformat/avformat.h\"
+}
+int main(void) {
+#if LIBAVFORMAT_VERSION_MAJOR >= 59
+ AVStream stream;
+ auto first_dts = av_stream_get_first_dts(&stream);
+#endif
+ return 0;
+}"
+)
+
#### Features
qt_feature("qtwebengine-build" PUBLIC
@@ -522,6 +541,11 @@ add_check_for_support(
CONDITION NOT LINUX OR DBUS_FOUND
MESSAGE "Build requires dbus."
)
+add_check_for_support(
+ MODULES QtWebEngine
+ CONDITION NOT LINUX OR NOT QT_FEATURE_webengine_system_ffmpeg OR TEST_libavformat
+ MESSAGE "Unmodified ffmpeg >= 5.0 is not supported."
+)
# FIXME: This prevents non XCB Linux builds from building:
set(xcbSupport X11 LIBDRM XCOMPOSITE XCURSOR XRANDR XI XPROTO XSHMFENCE XTST)
foreach(xs ${xcbSupport})