| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
by removing the space after `if` `endif`
Pick-to: 6.5 6.7
Change-Id: I5fdec78af7e92d4f5a88ad79feca222cfeb5b7d1
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
|
|
|
|
|
|
|
|
|
| |
The variable are cached, so we need to pass the CACHE specifier
to achieve the desired behavior.
Pick-to: 6.7 6.6 6.5
Change-Id: I3996998544a95a6b401813056a43268705847f8e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main reason for the refactoring:
- we've got a problem on CI with integrating QT_DEPLOY_FFMPEG=TRUE and
shared ffmpeg on macOS arm. Now it's not possible to integrate both
together at the same time. Even though the problem is only with arm,
it makes sense to keep the behavior the same on other platforms.
After the patch developers and CI will be able to compile
the FFmpeg plugin with static FFmpeg and QT_DEPLOY_FFMPEG=TRUE,
and get a warning message in this case while running cmake.
Pick-to: 6.7 6.6 6.5
Change-Id: I1fccc9e3a8360190f1e393a0c4805068bca47c5f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
| |
It's two capital "FF", lowercase "mpeg".
Pick-to: 6.7 6.6 6.5
Change-Id: I96d90ba959c5f52e998323800e97c8e72c731910
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Handle the corner case on Windows/arm/llvm-mingw compiler:
The compiler generates auxiliary static libs in the 'lib' folder and
cmake finds those instead of *.lib in the 'bin' folder.
The libs look like lib/libavutil.dll.a.
The previous approach didn't find the matching dll.
Let's handle the corner case even though we don't have it on CI.
The message with dumping found shared libs helps easily check
on CI whether the libs are found.
Pick-to: 6.7 6.6 6.5
Change-Id: Idc5b4aba0f9c60361336321138b1c078526075d4
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Marking some cmake variables as advanced prevents them from prominently
showing up in the build configuration
Pick-to: 6.5 6.6 6.7
Change-Id: I29af7f631b5ad9d4f435f8201ec31b187e8af6b0
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Dumping of shared ffmpeg libs is useful for us for easy check
if the proper libs were found on CI.
Pick-to: 6.7 6.6 6.5
Change-Id: If0d6f9f8e46c9d76d1823a6c47a79b62d5248f94
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fix is useful after implementation of copying ffmpeg libs to
lib folder. In this case the following development flow is possible:
- build QtMM in with QT_DEPLOY_FFMPEG (ffmpeg is copied to libs)
- clean only QtMM build + cmake cache, run cmake and build it again.
(now ffmpeg libs may be found in qtbase/libs dir).
- clean qtbase/libs dir without cleaning cmake cache and build agian.
(cached ffmpeg libs paths have become invalid).
The patch fixes the corner case above.
Pick-to: 6.7 6.6 6.5
Change-Id: Ifee6b249f1d2fb459c5fe88f676f7c96e0c04588
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first patch that implements ffmpeg shipping
for both cases, building and installation.
* deploy ffmpeg to plugins/multimedia/ffmpeg, as it should go
together with the ffmpeg plugin.
* ffmpeg deployment should be explicitly enquired via the option:
-DQT_DEPLOY_FFMPEG=TRUE. The idea is to turn it on only when we
or users need it, as users might have other compilation
environments (e.g. it's so with boot2qt). Setting the flag
for static qt builds is to be implemented later on.
* Tested on Windows, Linux, macOS, some platform-specific details
- On Unix platforms, ffmpeg libs might be put to
plugins/multimedia/ffmpeg, closer to the ffmpeg plugin.
However, on the current step, it was decided to deploy
to the library directory.
- On Windows, ffmpeg shared libs are linked through auxiliary
static ones, it's handled in cmake scripts in the patch.
- On Linux and Android, we will compile openssl and maybe vaapi
stub shared libs and deploy the together with ffmpeg.
- For Unix platforms, we will need to implement fixing of rpaths
e.g. set 'ORIGIN' and hardcoded dylib deps (macOS).
It will be done on the level of ffmpeg building on
CI (install-ffmpeg.sh).
Pick-to: 6.7 6.6 6.5
Change-Id: Ib7ce480b5412302f5d7ae9b247d5a5e87406a806
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* QtMM doesn't use openssl explicitly, loading openssl symbols
should be disabled if ffmpeg is linked dynamically.
* VAAPI-related warning message should be skipped for
dynamically linked ffmpeg as the message doesn't make sense.
Pick-to: 6.6 6.5
Change-Id: I89a4c70840f22117d65ef8eed3c40448555c57a0
Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set ENABLE_DYNAMIC_RESOLVE_OPENSSL_SYMBOLS variable to True also for
Android OS. That will allow to try to turn on
DYNAMIC_RESOLVE_OPENSSL_SYMBOLS (for ssl or crypto libs).
Task-number: QTBUG-110805
Task-number: QTBUG-114954
Task-number: QTBUG-113980
Pick-to: 6.6 6.5
Change-Id: Ic916b1419cf85425c2c11d24e9f65e70c46e7cd3
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
|
|
|
|
|
|
|
|
|
| |
Let's get rid of the linking vaapi dependency, load and resolve
in runtime instead.
Pick-to: 6.5 6.6
Change-Id: Icbc72470c935c1ae711c5457c8e85e4f96977a3b
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should ship the networking QtMM functionality to Linux users.
Having openssl as a dependency is a bad idea since users might not
have openssl.
The patch implements dynamic symbols loading and resolving on QtMM
initialization.
We might reuse the approach to address other linking dependencies.
Pick-to: 6.6 6.5
Change-Id: I0b21e44a66ebf892fb03f93844549e0877443481
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The build failure is not reproduced on CI but can be reproduced
locally if adding additional deps to the ffmpeg build.
In this case, deps may contain '-L:/usr/.../arm64-linux-gnu',
the prev regex found -l in the middle of the path and caused
a compilation error.
Pick-to: 6.6 6.5
Change-Id: I56c229513a1d3752804d3da08e08785738feee0a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 148cf063e4efb87fc1ff07429b5723ff35ad0ef0.
Reason for revert: It was not fixing the issue.
Pick-to: 6.5
Change-Id: I3f57721f4f24a7cd537cfb44d0b12dae9f533096
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To make sure that CMake sets and uses the
`CMAKE_C_IMPLICIT_LINK_DIRECTORIES`, we need to specify the
`IMPORTED_LINK_INTERFACE_LANGUAGES`, otherwise, if user projects
don't enable C, CMake might not know where to look, as seen in the bug.
Pick-to: 6.5
Fixes: QTBUG-112832
Change-Id: I5f26563cbbe4532b39933b4ffdec44bbccaf4062
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
When compiling under GNU/Linux with mingw-w64 this is required
as the filesystem is usually case-sensitive and mingw-w64 headers
and libraries all have lower-case names. This change shouldn't hurt
when compiling under Windows.
Change-Id: I46c64a8f2923cbe21ce3e6b922ce8b099681e528
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-105718
Change-Id: Iaf0950f30b9332ec7f04113971bc58547e31a2b9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
| |
FindFFmpeg.cmake already contains a SPDX license header.
Pick-to: 6.4
Change-Id: I3f7cde136644f94e49f221b4a04972f181c36baf
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.4
Change-Id: I8a9f4f0d02cb7a55769ea205946ddc429e86245d
Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@gmail.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-102645
Pick-to: 6.4
Change-Id: I9eca70ca28118a344f2d7e021bcfd8baad668a1b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
CMakeLists.txt and .cmake files of significant size
(more than 2 lines according to our check in tst_license.pl)
now have the copyright and license header.
Existing copyright statements remain intact
Task-number: QTBUG-88621
Change-Id: If5c61e7ebea0452847d411ea230438095111e030
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-102645
Change-Id: I15c4ded5a1e68cb09c4d3afdf63f9ae7955fd5c0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch enables video playback on Android using the FFmpeg backend.
For now, just Software rendering with audio subsystem integration.
Also, to get basic rendering working, this patch adds the conversion of
content scheme URLs into qmediaplayer.cpp.
Task-number: QTBUG-102232
Task-number: QTBUG-100474
Change-Id: I0e0efa8d05ad9c1bfaaedd2a18d6d2e7a163b999
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The recent changes in qtmultimedia code led to problems when resolving
symbol relocations for statically linked swscale library. This patch
applies --exclude-libs flag to all FFmpeg library components to avoid
this problem in the future with other library components.
Change-Id: I712432d95f0e638ac09feb1656f84d986d3fc534
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
| |
If the FFmpeg library is explicitly selected with FFMPEG_DIR variable
during configuration, use it and not the one available with pkgconfig.
Change-Id: If1bdf1102b291b61b77ce07aa1d56541a6913d89
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch enables linking of the static FFmpeg library.
When linking the static library we have to provide the library
dependencies. These are found in the pkgconfig files generated during
the library build and are parsed with
the __ffmpeg_internal_set_dependencies function. The function adds
dependencies listed in lines starting with Libs and Libs.private.
While dependencies from Libs.private should suffice this is not
the case on Windows where dependencies are listed in the Libs line.
The -Wl,--exclude-libs=libavcodec flag fixes linking on Linux which
otherwise fails with relocation problems on ff_pw_9 symbol in
libavcodec. The flag prevents export of the libavcodec symbols, thus
linker can optimize access to the static variables (including ff_pw_9)
which otherwise are bound to the shared library GOT.
The patch fixes the order of FFmpeg libraries linked to FFmpeg plugin
to correctly display the dependencies between FFmpeg libraries.
Change-Id: I119d975fcff2b610280e27478ad186b4ffbc2b25
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Show the found components on first configuration.
Don't keep appending libraries to the cache variable each time
the repo is reconfigured.
Don't show the found libraries on each reconfigure.
Change-Id: I1f76cd7e0d37cb9f34f3deeb0ed3d69a78b8576b
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IMPORTED_LINK_INTERFACE_MULTIPLICITY can only be set on IMPORTED
INTERFACE libraries.
Setting it on an INTERFACE library has no effect,
and with an older version of CMake (like 3.16) it causes a
configuration error like:
CMake Error at cmake/FindFFmpeg.cmake:182 (set_target_properties):
INTERFACE_LIBRARY targets may only have whitelisted properties.
The property "IMPORTED_LINK_INTERFACE_MULTIPLICITY" is not allowed.
Amends e91557637b3ed751ab4123588467d2ab2bedda3f
Task-number: QTQAINFRA-4844
Change-Id: Id92309f4776ee0bc0b90397215284f32f0d1fc28
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Some initial work to support FFmpeg on macOS. The device handling is
not really clean, we should probably separate audio and camera to
make it easier to re-use the platform specific code from the other
backends.
Change-Id: Ib3c1cc8cb97a9467fc70d8e472377b63c2233672
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
| |
Change-Id: Idb6c66eaa4ecbca9c8cd764550adabe957d98fea
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Use DMA buffers to copy the VAAPI surface over to OpenGL. This
only works when using QT_XCB_GL_INTEGRATION=xcb_egl. For GLX,
the DMA buffer integration is unfortunately not usable. It should
work on wayland as well, but that's untested.
Change-Id: Ib72d88621261b5b59b13d52d66796320ac02b8ae
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
Nothing working, just trying to enumerate devices and formats.
Change-Id: I8dddfe823a13d166f5d3c36030fd6e9882a6815d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Comment out everything related to playback and capture for
the moment so the module starts compiling.
Also start renaming files to match the naming of the
matching front-end classes.
Pick-to: 6.2
Change-Id: Idfca67de22f0321148b9aed46d95c595161c8b51
Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Adjust the cmake files to correctly configure Qt Multimedia
for QNX.
Pick-to: 6.2
Change-Id: I6271005a250f3d127e2d7f6860167b4707855078
Reviewed-by: Piotr Srebrny <piotr.srebrny@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Allows building QtMultimedia with a working Microsoft Media Foundation
backend, using MinGW 9.0.0, which has better support for WMF. Also
fixes warnings generated by newer GCC releases.
Pick-to: 6.2
Fixes: QTBUG-95234
Change-Id: I76e68c3b8dc4240f63543bbbb73a233289c67421
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Fix several issues in cmake/Find* in the code path that's hit when
pkg-config is not used.
Pick-to: 6.2
Task-number: QTBUG-96401
Change-Id: Iac6af560976ba6408d877027ed44a0354d32d2b7
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Doris Verria <doris.verria@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
And fix a couple of smaller issues found by CI.
Add some hacks/workarounds for issues with gstreamer
packages and packageconfig files.
Disable compilation of the QNX backend (as it's broken
currently), and use the wnf and wmsdk feature tests
to determine whether to compile the windows backend.
Change-Id: I12f8983132f50b337cb15eb473d87299d3259745
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Various API changes to QCameraInfo:
* Remove the camera orientation from our API This is
an implementation detail that should never be exposed
to the user. For fixed cameras it's uninteresting
and for mobile cameras, we can use the physical orientation
of the device to create a stream that is oriented the
correct way.
* Add a QVideoFormat class describing a video format
* Add a QList<QVideoFormat> videoFormats()
* Add a QList<QSize> photoResolutions()
* Implement the API for gstreamer and macOS.
Change-Id: I9ffd9caeb6d07a6f267608a6bd794d99699fffbb
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
Detect gstreamer, avfoundation, pulseaudio, alsa,
mmrenderer and wmf with cmake. Regenerate and adjust configure.cmake
and CMakeLists.txt files accordingly.
Change-Id: I550136909498d3870e0babd6294652774a718f64
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|