Commit Graph

39 Commits

Author SHA1 Message Date
Pavel Dubsky
c3809a73ea Update FFmpeg version to n7.1.2
Task-number: QTBUG-140468
Pick-to: 6.10
Change-Id: Ia77053bd4022a9691b4729e748884fd42ee2d1a8
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2025-10-10 14:27:22 +02:00
Rami Potinkara
05b5626379 Android: FFmpeg to support 16KB page sizes on Windows
This patch introduces 16KB page size support for Windows
host to do Qt for Android build.

Currently Windows only builds FFmpeg on armeabi-v7a ABI.
32-bit ABI's like armeabi-v7a do not support 16KB page
sizes so the build is done for 4KB page size.

Amends ce488ecbc125cb3484f1cbed592ac9e28867eb66

Task-number: QTBUG-139762
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: Ife7d56dd4a9f6d2892127571cab616b3f861dee6
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2025-09-24 10:06:15 +03:00
Nils Petter Skålerud
7f416abf32 FFmpeg, Android ARMv7: Use correct build folder when fixing deps
This patch amends 133de012af95507ac485845d8de8f58da005df64.

The previous patch introduced a regression where the newer build paths
were not being passed correctly into 'fix_ffmpeg_dependencies.sh'
during FFmpeg Android builds.

This patch introduces a common function to resolve the installation
directory, which is then used both during compilation and during
FFmpeg patching.

Additionally, it introduces some basic error-handling when running
'fix_ffmpeg_dependencies.sh' so that we can catch this issue in
integration, in the future.

Pick-to: 6.10
Fixes: QTBUG-138615
Change-Id: I195ebd3034a3184bad32e75916a41a20838b2db1
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-08-31 16:38:36 +02:00
Pavel Dubsky
f7af78977c Enable zlib in FFmpeg configuration
Fixes: QTBUG-103332
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: I87a760edcd4d8a77966ec5a692cb1f1f4242b647
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2025-08-12 14:54:31 +00:00
Elias Toivola
75fea893b1 Build FFmpeg with each Android NDK version
Multiple Android NDKs are installed in provisoning. FFmpeg build uses
NDK in its build process for Android, so this change makes provisioning
build multiple Android FFmpeg builds, so each Android nightly can use a
FFmpeg build where its corresponding NDK version was used.

Pick-to: 6.10
Task-number: QTQAINFRA-7069
Change-Id: Ie4457c87b7b75e0c711a76bd8170e718cbda445d
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-06-19 14:46:39 +03:00
Elias Toivola
687b73cde0 Android: set nightly targets for older NDK versions
This change makes provisioning also install older NDKs for Android,
which will be used in nightly targets.

Pick-to: 6.10
Task-number: QTQAINFRA-7069
Change-Id: Ia8695383e94df282822da9019c33f1004a879bf6
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-06-19 14:46:29 +03:00
Paul Dubsky
24bba3c8b5 Update FFmpeg version to n7.1.1
Task-number: QTBUG-134621
Pick-to: 6.9 6.8 6.5
Change-Id: I6255f615be533521bf1c3da85b29f96e855197e1
Reviewed-by: Bartlomiej Moskal <bartlomiej.moskal@qt.io>
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
2025-04-07 20:30:30 +02:00
Rami Potinkara
a242bb2e3e Provisioning: Update Android NDK to LTS version r27c
This patch updates Android NDK from LTS r26b to LTS r27c.
The version is 27.2.12479018

Task-number: QTQAINFRA-6479
Task-number: QTQAINFRA-6655
Pick-to: 6.9.0 6.9 6.8.3 6.8 6.5
Change-Id: Ic791cfd5d5dd2a439f96590b6f6f8ca0ac4fb5ae
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2025-03-13 10:09:08 +00:00
Pavel Dubsky
154b41a260 Update FFmpeg version to n7.1
Task-number: QTBUG-129510
Pick-to: 6.8 6.5
Change-Id: I15a801c0c0568b26486e5bb2065a1d0d1d151951
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2024-12-10 14:30:53 +00:00
Tero Heikkinen
d197f06634 Provisioning: Fix ci-files01-hki to use correct URL
Replace ci-files01-hki.intra.qt.io
with    ci-files01-hki.ci.qt.io

Task-number: QTQAINFRA-6663
Pick-to: 6.8 6.5 5.15
Change-Id: Ia9a6b1fc5a23b6f1a393d6e4be8be41e2991e876
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-10-17 01:11:07 +03:00
Tero Heikkinen
88ce036073 Provisioning: Build FFmpeg for Windows ARM64 in ARM64 host
Install msys2 and FFmpeg for QtMultimedia plugin

Task-number: QTBUG-124399
Pick-to: 6.8 6.7
Change-Id: Ied2bc1039d9571611666530850c525c35c170c69
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2024-09-03 13:26:21 +03:00
Pavel Dubsky
f2535cdcef Update FFmpeg version to n7.0.2
Task-number: QTBUG-127868
Pick-to: 6.8 6.7 6.5
Change-Id: I95f8f021cd23fdb35eb171d4609bf204878e105d
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2024-08-17 10:50:01 +02:00
Bartlomiej Moskal
64aee78df8 coin: Downgrade patchelf version on CI
Downgrade patchelf version from 0.18.0 to 0.17.2 on MacOs, Linux and
Windows.

It looks like there is a problem with 0.18.0 version, when modyfing the
Android libs. It causes an unresolved dependencies error when loading a
changed library.

Fixes: QTBUG-126861
Pick-to: 6.8
Change-Id: I5a95daae0a78aadede009535b2813483afcbc99d
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2024-07-29 19:07:18 +02:00
Pavel Dubsky
a68d7302cd Update FFmpeg version to n7.0.1
Fixes: QTBUG-126687
Pick-to: 6.8 6.7 6.5
Change-Id: I327a33a65aaa0285a93fa228f47d6914623f8d3d
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
2024-07-26 00:11:22 +00:00
Pavel Dubsky
49c03849e3 Use single installation archive for FFmpeg provisioning on all platforms
Fixes: QTBUG-125955
Pick-to: 6.8
Change-Id: Ibfa97e3d765eb3c4ff5613004bc881e49ddf10e9
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2024-07-09 18:43:13 +00:00
Pavel Dubsky
eb8bbfe971 Update FFmpeg version to n7.0
Fixes: QTBUG-124482
Pick-to: 6.8 6.7 6.5
Change-Id: I69727981344d935151f19148960c711b65cb2307
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2024-06-20 04:56:19 +00:00
Bartlomiej Moskal
a675a87446 Coin: Turn on Dynamically linked FFmpeg for Android
Turn on dynamically linked ffmpeg on Android on all hosts (Linux,
Windows and macOS).

Pick-to: 6.8
Task-number: QTBUG-122010
Change-Id: Ib3739173bee209ce73e77b75d7b345208da002e4
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-06-17 13:44:33 +02:00
Bartlomiej Moskal
7c96a8225a Coin: Dynamically linked FFmpeg for Android (on Windows host)
Prepare install-ffmpeg.ps1 script for turning on dynamically
linked FFmpeg on Windows.

Script on Windows will use MSYS2 and run same bash script as Linux host.
To make it possible first need to install binutils (for readelf) and
patchelf. As patchelf is not available by pacman, it is compiled and
installed from sources.

Pick-to: 6.8
Task-number: QTBUG-122010
Change-Id: Ide1e7da82f73b1663a3c5d7657c53057281ebe94
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-06-17 13:44:19 +02:00
Pavel Dubsky
ca73305d19 Replace global configuration of FFmpeg provisioning with parameter
FFmpeg provisioning script for Windows loads common configuration
options from a file and stores them in a global variable which is
modified per toolset (LLVM, MinGW, MSVC, Android). This results in
possible side effects when an installation for a certain toolset is
appending to the current state of the configuration.

Better approach would be to replace global variable usage with
additional parameter to InstallFfmpeg function and make each specific
installation pass complete set of configuration options that it
requires.

Fixes: QTBUG-125953
Pick-to: 6.8 6.7 6.5
Change-Id: I2484c8f65485d56efc5e02502fd31839ea14f164
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-06-11 17:17:34 +02:00
Tero Heikkinen
3ac3b7d9f3 Provisioning: Add Windows 11 on ARM as non-blocking in CI
Visual Studio 2022 is the first msvc having natively support for
building and debugging ARM64 apps. [CI Platforms]

Provisioning needed to take new Get-CpuArchitecture
helpers.ps1 function into use in several installations.

Requirements for other branches
- Get-CpuArchitecture helpers.ps1 function
- Skip qtwebengine with Windows 11 ARM (QTBUG-124632)

List of excluded installations in Windows on ARM:

- Could be added later
  - MinGW - QTQAINFRA-6079
  - DirectX SDK for RTA
  - libclang
  - mcuexpresso
  - fbx for msvc2022
  - Ruby
  - For python
    - conan
    - emsdk

- Not supported yet
  - FFmpeg
  - Msys2 (for FFmpeg QTBUG-124399)
  - MySQL
  - PostgreSQL
  - Java JDK
  - Strawberry Perl

Task-number: QTQAINFRA-6109
Task-number: QTQAINFRA-5855
Pick-to: 6.7
Change-Id: I4130e78add53f8a6e05eb41b7617b3f9ca802178
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-05-14 19:47:28 +03:00
Pavel Dubsky
befe4a61d6 Update provisioning script to build FFmpeg for Windows ARM64
Fixes: QTBUG-122745
Pick-to: 6.7 6.5
Change-Id: Ib03484ac89f07d7ad6433b0035769f4a9363495b
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-04-20 08:37:10 +02:00
Artem Dyomin
45220efb3a Update ffmpeg: explicitly refer to the latest release 6.1.1
Pick-to: 6.7 6.6 6.5
Change-Id: I231c5cdc6155de0d1ea98220a90ecc0f910b34d6
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2024-02-21 13:27:56 +00:00
Artem Dyomin
0fe99775c0 Enable ffmpeg shared libs shipping for Windows targets
We have to replace static linkage with dynamic one due to
licensing issues.

The related patch in QtMM
codereview.qt-project.org/c/qt/qtmultimedia/+/523405
introduces cmake var QT_DEPLOY_FFMPEG that enables deployment
of ffmpeg shared libs to the installation lib dir or
the build lib dir (for dev builds).

These are build/tests results for the current CR
together with the patch in QtMM
testresults.qt.io/coin/integration/qt/qtmultimedia/tasks/web_rescheduled_qt_qtmultimedia_1703082976669

The related patch
codereview.qt-project.org/c/qt/qtbase/+/525100
fixes the deployment tool on Windows.

The plan is to have the set of changes for Windows in
6.5.4, 6.6.2, 6.7.0.

It was agreed that we want to backport shared ffmpeg to 6.6 and 6.5.

Pick-to: 6.7 6.6 6.5
Change-Id: Ie4d8621a98fb93715c32e49c830bfd715ed0e8a5
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-02-02 07:23:19 +00:00
Artem Dyomin
483694d725 Update ffmpeg n6.0 -> n6.1 on Windows
The update will go tohether with dynamic ffmpeg build on Windows.

Pick-to: 6.7 6.6 6.5
Change-Id: I7a72d4009c8a8e4030899b526bad9cfedd6f45a7
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2024-02-02 08:23:16 +01:00
Elias Toivola
782e1700cf Update Android NDK to version r26b
Revision 26.1.10909125. Also prebuilt OpenSSL 3.0.7 with it.

Task-number: QTQAINFRA-5771
Pick-to: 6.7
Change-Id: I0dbe1f2d38f277bcb805f5b7ac1f30e25aabd1f8
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-22 02:46:33 +00:00
Elias Toivola
0b70b8f3c4 Update MinGW to v13.1.0 (x86_64)
Task-number: QTQAINFRA-5045
Change-Id: Id63e375faf2ed984c461ff4eab6271187672c3ea
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-12-11 13:14:06 +02:00
Bartlomiej Moskal
65101a61e6 Coin: Enable openssl for Android FFmpeg install script
The FFmpeg library should use dynamically linked OpenSSL. To make it
possible --enable-openssl flag need to be set. Additionally correct path
for OpenSSL need to be passed to FFmpeg configuration script.

Task-number: QTBUG-110805
Task-number: QTBUG-114954
Task-number: QTBUG-113980
Pick-to: 6.6 6.5
Change-Id: Id887c2c4083663a674123a0f0003b44661149116
Reviewed-by: Samuel Mira <samuel.mira@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-11-22 10:54:58 +01:00
Elias Toivola
b3d10251b4 Fix cache URLs and add missing cache files
The missing files were downloaded from their external source and placed in their directories of the cache URLs. Files: FFmpeg-n6.0.tar.gz, Postgres-2.5-14.dmg, protobuf-all-21.9.zip, MimerSQLInstaller_x64_1107b.exe, FFmpeg-n6.0.zip, msys2-base-x86_64-20220319.tar.xz, python-3.10.0-amd64.exe, python-2.7.13.msi, mimersqlsrv_11.0_amd64-openssl3.deb, mimersqlsrv-11.0.x86_64-openssl3.rpm, MinGW-w64-x86_64-11.2.0-release-posix-seh-rt_v9-rev3.7z

Task-number: QTQAINFRA-5766
Change-Id: Ieacdc9138b71969397d900096956f54faff45918
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-09-14 05:04:44 +00:00
Artem Dyomin
d16fb16c53 Disable vulkan and v4l2m2m for ffmpeg builds
Vulkan:
FFmpeg has a very draft support of vulkan in n5.x and n6.0,
it's promised to be introduced with some working functionality in n6.1.
We'll wait for 6.1, then test it. For now, let's get rid of the extra
dependency.

v4l2m2m:
It's a prospective hw acceleration on linux, especially on embeddded
platforms, but currently, in my experiments, it's not working with
both QtMM and ffmpeg cmd line.
Let's get rid of the not working codec. Hopefully, it'll be fixed
in the future.

Pick-to: 6.6 6.5
Change-Id: I2468f84ae2ec54043d2db83f1a9c08be8e4f509d
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-08-17 11:33:29 +00:00
Jøger Hansegård
c4d26fe1d2 Enable rebuilding FFMPEG for MSVC without deleting lib files first
To simplify testing modifications to the FFMPEG library, it is nice to
be able to rebuild FFMPEG without having to manually delete lib files
first. This change makes this possible because it uses powershell
Move-Item instead of Rename-Item to rename .o files to .lib files.
Move-Item's -Force argument allows renaming files to destination that
already exists.

Pick-to: 6.5 6.6
Change-Id: I0a56776d38c37d38d1cd74b5186881fc955d51f0
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2023-06-24 15:29:41 +00:00
Lucie Gérard
eecfb19548 Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
License files are organized under LICENSES directory.

Pick-to: 6.5 6.6
Task-number: QTBUG-67283
Task-number: QTBUG-108364
Change-Id: If26e4d35c780db4a7982bb84872b251dad24716e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2023-06-12 12:10:41 +00:00
Tony Sarajärvi
58ddf7133c Correct the domain of ci-files01-hki
It's hasn't been .intra.qt.io for quite some time, it
has worked through an alias we have on the DNS server.

Change-Id: I0bc17668dacfea64c276bb553e75e4be16e97659
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
2023-06-12 12:10:26 +00:00
Samuel Mira
2751db4d29 Fix FFmpeg provisioning for Android armv7a
Altered install-ffmpeg.ps1 script to build android armv7a archicture

Task-number: QTQAINFRA-5476
Pick-to: 6.5
Change-Id: I5179174c8676a3016df2922c00030e9d45a9009c
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2023-05-16 18:35:23 +02:00
Alexey Edelev
84df93d37e Uninify MSVC version that is used in provisioning
We pick the oldest build tools we can find because there is lower
chance that the produced binaries will be incomaptible with the newer
version of MSVC.

With the current provisioning design we also cannot change the MSVC
version for the each package on demand. Once Enter-VsDevShell is called
it litters the powershell environment and blocks the use of
Enter-VsDevShell second time. It could be better to run each .ps1 file
in own instance of powershell to avoid mixing build environment.

Amends f58afd5476

Pick-to: 6.5
Change-Id: Ie752cfc8b69ed985e61ec16209007dd586611866
Reviewed-by: Samuel Mira <samuel.mira@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2023-05-16 18:35:23 +02:00
Artem Dyomin
aed030bb90 Update ffmpeg version to n6.0
Checked the basic functionality on macOS, linux, and windows.
To be tested in detail.

Pick-to: 6.5
Change-Id: I109f52ab33d58088332a3885c83d622815edd22e
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-04-15 18:10:47 +00:00
Pavel Dubsky
f58afd5476 Use vswhere to find the location of Visual Studio
vswhere tool is included since Visual Studio 2017 and is always located
at the same path thus making it a more convenient way to find Visual
Studio install directory.

Pick-to: 6.5
Change-Id: I680af8f88779841108b436223b4667f8a7c91aba
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-03-12 15:59:15 +00:00
Artem Dyomin
0f8eccdfc5 Update ffmpeg version to 5.1 for desktop platforms
Some issues have been fixed in ffmpeg 5.1, e.g, with videotoolbox.
So the update at least fixes our playback
of some video formats on macos, e.g. provided in the related bug.

After the update I tested the basic functionality on windows,
linux, macOS, and run CI tests, which are OK.

Task-number: QTBUG-98102
Pick-to: 6.5 6.4
Change-Id: I72f45780e1c3983d6a1941db2b833b78784b90de
Reviewed-by: Samuel Mira <samuel.mira@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-01-16 22:15:16 +01:00
Artem Dyomin
5ef8294f3f Enable llvm-mingw ffmpeg windows build
- Added build of ffmpeg for llvm-mingw
- Improved build errors handling
- Refactoring: decompose script into a few functions

Build example:
https://testresults.qt.io/coin/integration/qt/qt5/tasks/web_qt_qt5_1668780311363
See tests for LLVM-x64, they passed

Pick-to: 6.4
Change-Id: I59fe28ba6eb8e65ef5c4c3d08343ff72f349bd21
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Reviewed-by: Simo Fält <simo.falt@qt.io>
2022-11-24 09:53:57 +01:00
Piotr Srebrny
a273e9f11c Provision FFmpeg library for QtMultimedia plugin
One of the QtMultimedia backends is implemented using FFmpeg.
This provisioning enables building and testing of this backend.

Change-Id: Ia196c2ae4b457aa6b8e3ee8e0f367197aadfe0d9
Reviewed-by: Simo Fält <simo.falt@qt.io>
2022-06-13 09:56:56 +02:00