Commit Graph

27 Commits

Author SHA1 Message Date
Elias Toivola ffc15eb35f Android FFmpeg: Further fix FFmpeg build directories
This fixes "does not exist" errors when trying to build multiple NDKs.

This amends 303b4c13dc

Pick-to: 6.10 6.9 6.8 6.5
Task-number: QTQAINFRA-7069
Change-Id: I29f5cd85ffb3cf12a81b5816a5601ea37446042d
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-08-31 17:38:48 +03:00
Nils Petter Skålerud 4170b81aea FFmpeg, Android: Add support for Android ARMv7 in Unix FFmpeg script
This patch introduces support for building FFmpeg for Android ARMv7
on Unix hosts.

Pick-to: 6.10 6.9 6.8
Change-Id: I21affa1137cb4b3aa3a5b9cfd5c71e755684db9c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2025-07-25 07:48:32 +02:00
Nils Petter Skålerud 303b4c13dc Coin, FFmpeg, Android: Fix nightly FFmpeg build folder (Unix)
Previous patch 75fea893b1 introduced
a small bug where multiple nightly builds of FFmpeg were being
outputted into the same directory, effectively causing them to
overwrite each other.

This patch gives the nightly builds their own subfolder for outputted
library files.

Pick-to: 6.10
Task-number: QTQAINFRA-7069
Change-Id: I5f7e111708aecedd2817888948b77b8163f0452d
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2025-06-21 09:31:42 +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
Nils Petter Skålerud 0583292728 Coin, FFmpeg: Check for valid envvars in install-ffmpeg-android.sh
This script requires that we have setup specific environment variables
ahead of time. If they are missing, we are prone to receiving
non-descriptive error messages.

This patch adds checks for the required environment variables, and
gives useful error messages if they are not set correctly.

Pick-to: 6.10 6.9 6.8
Change-Id: I0cfb99187f303b22dbdd46a7a848b85dbf571aad
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-06-07 10:00:50 +02:00
Nils Petter Skålerud 07775b2ad2 Android, FFmpeg: Allow specifying target output in FFpeg install script
The provisioning script install-ffmpeg-android.sh can be useful to run
locally to make sure we build FFmpeg with the same configuration as we
do in CI.

This patch introduce an optional parameter to this provisioning script
that allows us to specify where to install the compiled binaries.

Pick-to: 6.9
Change-Id: I7ea30bffa4753ac1fab707ed2876ddcbbca06175
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-04-01 04:35:30 +00:00
Artem Dyomin 151c0dd58f Cleanup in install-ffmpeg-android.sh
Non-functional changes:
* fix alignment
* add the keyword 'local' to local function variables

Pick-to: 6.8 6.9
Change-Id: I28639d28c7211809e52f118c1612db52f8954286
Reviewed-by: Jøger Hansegård <jogerh@gmail.com>
Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io>
2025-04-01 04:35:22 +00:00
Artem Dyomin 51dad84914 Add ffmpeg-installation-utils.sh file
There're code duplications in install-ffmpeg scripts.
Let's have a file with FFmpeg installation utils and reuse
the functionality on unix platforms.
The utility functions make the code more robust and get
around code duplications.

Pick-to: 6.9 6.8 6.5
Change-Id: I28639d18c7110109e52ff09ce602da52f8857281
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2025-01-10 08:35:00 +01: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
Nils Petter Skålerud 8f47837a59 coin, macOS, FFmpeg: Fix incorrect popd in install-ffmpeg-android.sh
popd was placed incorrectly and caused the script to be unable to find
the fix_ffmpeg_dependencies.sh file.

Pick-to: 6.8
Change-Id: I7922a698e90d1b3899ecc7b2240a260ea706707f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-10-27 10:14:12 +02:00
Nils Petter Skålerud 758ac7896f coin, macOS, FFmpeg: Fix install-ffmpeg-android.sh
Script would previously unconditionally run ln even if target file
sometimes exists in precompiled OpenSSL library.

Pick-to: 6.8
Change-Id: I90c4ad7c6cbf9207c2c82114936b478a9ba4ae54
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-10-27 10:14:04 +02: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
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 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 b6c6812798 Coin: Move fix_ffmpeg_dependencies.sh to shared directory
Move fix_ffmpeg_dependencies.sh script from "linux" to "shared"
directory.

The script will be used on macOS but also on Windows (using MSYS2)

Pick-to: 6.8
Task-number: QTBUG-122010
Change-Id: If63d5e3ba7562b230cce26c7bfba728a2ae0a382
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-06-17 13:44:11 +02:00
Bartlomiej Moskal 9e0d693caa Coin: Dynamically linked FFmpeg for Android (on Linux host)
Prepare install-ffmpeg-android.sh script for turning on dynamically
linked FFmpeg

Pick-to: 6.8
Task-number: QTBUG-122010
Change-Id: Id186e546b1b3c9bbb5a84492766411f806f51b4e
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2024-06-17 13:43:56 +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 85c2ab668b Update ffmpeg 6.0 => 6.1 for android targets on unix hosts
In n6.1, the target cpu is supposed to be x86-64 instead of x86_64.

Task-number: QTBUG-121343
Pick-to: 6.7 6.6 6.5
Change-Id: Id87a6eaaf73f093bbac66f245998cda6a3e992fc
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2024-02-14 22:28:07 +00: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
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
Tony Sarajärvi 620666bce4 Fix shellcheck complaints about provisioning scripts
Also adds executable attributes to shell scripts that were missing it.

Change-Id: Id52ef495147fdbfb5cb1a1f711fac530e0e85f3b
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2023-09-13 06:44:02 +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
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 99afe7199e Fix FFmpeg provisioning for Android in arm64, x86 and x86_64
Added install-ffmpeg-android script for the android cross-compile
Removed android stuff from install-ffmpeg
Changed the yaml variables to include the target arch
Added the arm64 target arch

Task-number: QTQAINFRA-5476
Pick-to: 6.5
Change-Id: Id9609ed0427f2fc42f7f27e7787a81ad145f59be
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-04-26 22:44:30 +00:00