summaryrefslogtreecommitdiffstats
path: root/src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp
diff options
context:
space:
mode:
authorArtem Dyomin <artem.dyomin@qt.io>2024-04-08 15:30:23 +0200
committerArtem Dyomin <artem.dyomin@qt.io>2024-05-14 18:37:58 +0000
commitd0a1eaa13d94fee4a4e0a635d9ce9ee58c38f2e5 (patch)
treeaf39d7cc23fcd793abc2fac18e5c0ad554fe1e8e /src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp
parent500d55c66200d1c0e223e52565021c02c37766d6 (diff)
Rework dependencies stubs for FFmpeg
* Move the stub utils from the plugin to QtMM so that shared stubs could reuse them. * Make the stubs as singletons instead of a static object to address initialization races and allow lazy loading (it's optional now). * Decouple stubs definition: one file and singleton per stubbed lib. It gives us an advantage to create shared stubs separately, they are to be implemented in the next CR. Task-number: QTBUG-120990 Pick-to: 6.7 6.5 Change-Id: I2158a49073b1e66d1bbfcb993b7746a4bd45048f Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp')
-rw-r--r--src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp b/src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp
deleted file mode 100644
index 9860b53a0..000000000
--- a/src/plugins/multimedia/ffmpeg/qffmpegvaapisymbols.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// Copyright (C) 2023 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-
-#include <QtCore/qlibrary.h>
-
-#include "qffmpegsymbolsresolveutils_p.h"
-
-#include <QtCore/qglobal.h>
-#include <qstringliteral.h>
-
-#include <va/va.h>
-#ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS
-#include <va/va_drm.h>
-#endif
-#ifdef DYNAMIC_RESOLVE_VA_X11_SYMBOLS
-#include <va/va_x11.h>
-#endif
-#include <va/va_str.h>
-
-QT_BEGIN_NAMESPACE
-
-static Libs loadLibs()
-{
- constexpr int version = VA_MAJOR_VERSION + 1;
- Libs libs;
- libs.push_back(std::make_unique<QLibrary>("va", version));
-#ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS
- libs.push_back(std::make_unique<QLibrary>("va-drm", version));
-#endif
-
-#ifdef DYNAMIC_RESOLVE_VA_X11_SYMBOLS
- libs.push_back(std::make_unique<QLibrary>("va-x11", version));
-#endif
-
- if (LibSymbolsResolver::tryLoad(libs))
- return libs;
-
- return {};
-}
-
-constexpr size_t symbolsCount = 40
-#if VA_CHECK_VERSION(1, 9, 0)
- + 1
-#endif
-#ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS
- + 1
-#endif
-#ifdef DYNAMIC_RESOLVE_VA_X11_SYMBOLS
- + 1
-#endif
- ;
-
-Q_GLOBAL_STATIC(LibSymbolsResolver, resolver, "VAAPI", symbolsCount, loadLibs);
-
-void resolveVAAPI()
-{
- resolver()->resolve();
-}
-
-QT_END_NAMESPACE
-
-QT_USE_NAMESPACE
-
-DEFINE_FUNC(vaInitialize, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaTerminate, 1, VA_STATUS_ERROR_OPERATION_FAILED);
-
-constexpr auto errorStr = "VAAPI is not available";
-DEFINE_FUNC(vaErrorStr, 1, errorStr);
-DEFINE_FUNC(vaSetErrorCallback, 3);
-DEFINE_FUNC(vaSetInfoCallback, 3);
-
-DEFINE_FUNC(vaCreateImage, 5, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaGetImage, 7, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaPutImage, 11, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaDeriveImage, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaDestroyImage, 2, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaQueryImageFormats, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-
-DEFINE_FUNC(vaBeginPicture, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaRenderPicture, 4, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaEndPicture, 2, VA_STATUS_ERROR_OPERATION_FAILED);
-
-DEFINE_FUNC(vaCreateBuffer, 7, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaMapBuffer, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaUnmapBuffer, 2, VA_STATUS_ERROR_OPERATION_FAILED);
-#if VA_CHECK_VERSION(1, 9, 0)
-DEFINE_FUNC(vaSyncBuffer, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-#endif
-DEFINE_FUNC(vaDestroyBuffer, 2, VA_STATUS_ERROR_OPERATION_FAILED);
-
-DEFINE_FUNC(vaCreateSurfaces, 8, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaSyncSurface, 2, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaExportSurfaceHandle, 5, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaDestroySurfaces, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-
-DEFINE_FUNC(vaCreateConfig, 6, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaGetConfigAttributes, 5, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaMaxNumProfiles, 1);
-DEFINE_FUNC(vaMaxNumImageFormats, 1);
-DEFINE_FUNC(vaMaxNumEntrypoints, 1);
-DEFINE_FUNC(vaQueryConfigProfiles, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaQueryConfigEntrypoints, 4, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaQuerySurfaceAttributes, 4, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaDestroyConfig, 2, VA_STATUS_ERROR_OPERATION_FAILED);
-
-DEFINE_FUNC(vaCreateContext, 8);
-DEFINE_FUNC(vaDestroyContext, 2);
-
-constexpr auto emptyString = "";
-DEFINE_FUNC(vaQueryVendorString, 1, emptyString);
-DEFINE_FUNC(vaProfileStr, 1, emptyString);
-DEFINE_FUNC(vaEntrypointStr, 1, emptyString);
-
-DEFINE_FUNC(vaGetDisplayAttributes, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-
-DEFINE_FUNC(vaSetDriverName, 2, VA_STATUS_ERROR_OPERATION_FAILED);
-
-DEFINE_FUNC(vaAcquireBufferHandle, 3, VA_STATUS_ERROR_OPERATION_FAILED);
-DEFINE_FUNC(vaReleaseBufferHandle, 2, VA_STATUS_ERROR_OPERATION_FAILED);
-
-#ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS
-DEFINE_FUNC(vaGetDisplayDRM, 1); // va-drm
-#endif
-
-#ifdef DYNAMIC_RESOLVE_VA_X11_SYMBOLS
-DEFINE_FUNC(vaGetDisplay, 1); // va-x11
-#endif