Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qffmpegvaapisymbols.cpp
Go to the documentation of this file.
1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include <QtCore/qlibrary.h>
5
7
8#include <QtCore/qglobal.h>
9#include <qstringliteral.h>
10
11#include <va/va.h>
12#ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS
13#include <va/va_drm.h>
14#endif
15#ifdef DYNAMIC_RESOLVE_VA_X11_SYMBOLS
16#include <va/va_x11.h>
17#endif
18#include <va/va_str.h>
19
21
22static Libs loadLibs()
23{
24 constexpr int version = VA_MAJOR_VERSION + 1;
25 Libs libs;
26 libs.push_back(std::make_unique<QLibrary>("va", version));
27#ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS
28 libs.push_back(std::make_unique<QLibrary>("va-drm", version));
29#endif
30
31#ifdef DYNAMIC_RESOLVE_VA_X11_SYMBOLS
32 libs.push_back(std::make_unique<QLibrary>("va-x11", version));
33#endif
34
36 return libs;
37
38 return {};
39}
40
41constexpr size_t symbolsCount = 40
42#if VA_CHECK_VERSION(1, 9, 0)
43 + 1
44#endif
45#ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS
46 + 1
47#endif
48#ifdef DYNAMIC_RESOLVE_VA_X11_SYMBOLS
49 + 1
50#endif
51 ;
52
54
56{
57 resolver()->resolve();
58}
59
61
63
64DEFINE_FUNC(vaInitialize, 3, VA_STATUS_ERROR_OPERATION_FAILED);
65DEFINE_FUNC(vaTerminate, 1, VA_STATUS_ERROR_OPERATION_FAILED);
66
67constexpr auto errorStr = "VAAPI is not available";
68DEFINE_FUNC(vaErrorStr, 1, errorStr);
69DEFINE_FUNC(vaSetErrorCallback, 3);
70DEFINE_FUNC(vaSetInfoCallback, 3);
71
72DEFINE_FUNC(vaCreateImage, 5, VA_STATUS_ERROR_OPERATION_FAILED);
73DEFINE_FUNC(vaGetImage, 7, VA_STATUS_ERROR_OPERATION_FAILED);
74DEFINE_FUNC(vaPutImage, 11, VA_STATUS_ERROR_OPERATION_FAILED);
75DEFINE_FUNC(vaDeriveImage, 3, VA_STATUS_ERROR_OPERATION_FAILED);
76DEFINE_FUNC(vaDestroyImage, 2, VA_STATUS_ERROR_OPERATION_FAILED);
77DEFINE_FUNC(vaQueryImageFormats, 3, VA_STATUS_ERROR_OPERATION_FAILED);
78
79DEFINE_FUNC(vaBeginPicture, 3, VA_STATUS_ERROR_OPERATION_FAILED);
80DEFINE_FUNC(vaRenderPicture, 4, VA_STATUS_ERROR_OPERATION_FAILED);
81DEFINE_FUNC(vaEndPicture, 2, VA_STATUS_ERROR_OPERATION_FAILED);
82
83DEFINE_FUNC(vaCreateBuffer, 7, VA_STATUS_ERROR_OPERATION_FAILED);
84DEFINE_FUNC(vaMapBuffer, 3, VA_STATUS_ERROR_OPERATION_FAILED);
85DEFINE_FUNC(vaUnmapBuffer, 2, VA_STATUS_ERROR_OPERATION_FAILED);
86#if VA_CHECK_VERSION(1, 9, 0)
87DEFINE_FUNC(vaSyncBuffer, 3, VA_STATUS_ERROR_OPERATION_FAILED);
88#endif
89DEFINE_FUNC(vaDestroyBuffer, 2, VA_STATUS_ERROR_OPERATION_FAILED);
90
91DEFINE_FUNC(vaCreateSurfaces, 8, VA_STATUS_ERROR_OPERATION_FAILED);
92DEFINE_FUNC(vaSyncSurface, 2, VA_STATUS_ERROR_OPERATION_FAILED);
93DEFINE_FUNC(vaExportSurfaceHandle, 5, VA_STATUS_ERROR_OPERATION_FAILED);
94DEFINE_FUNC(vaDestroySurfaces, 3, VA_STATUS_ERROR_OPERATION_FAILED);
95
96DEFINE_FUNC(vaCreateConfig, 6, VA_STATUS_ERROR_OPERATION_FAILED);
97DEFINE_FUNC(vaGetConfigAttributes, 5, VA_STATUS_ERROR_OPERATION_FAILED);
98DEFINE_FUNC(vaMaxNumProfiles, 1);
99DEFINE_FUNC(vaMaxNumImageFormats, 1);
100DEFINE_FUNC(vaMaxNumEntrypoints, 1);
101DEFINE_FUNC(vaQueryConfigProfiles, 3, VA_STATUS_ERROR_OPERATION_FAILED);
102DEFINE_FUNC(vaQueryConfigEntrypoints, 4, VA_STATUS_ERROR_OPERATION_FAILED);
103DEFINE_FUNC(vaQuerySurfaceAttributes, 4, VA_STATUS_ERROR_OPERATION_FAILED);
104DEFINE_FUNC(vaDestroyConfig, 2, VA_STATUS_ERROR_OPERATION_FAILED);
105
106DEFINE_FUNC(vaCreateContext, 8);
107DEFINE_FUNC(vaDestroyContext, 2);
108
109constexpr auto emptyString = "";
110DEFINE_FUNC(vaQueryVendorString, 1, emptyString);
111DEFINE_FUNC(vaProfileStr, 1, emptyString);
112DEFINE_FUNC(vaEntrypointStr, 1, emptyString);
113
114DEFINE_FUNC(vaGetDisplayAttributes, 3, VA_STATUS_ERROR_OPERATION_FAILED);
115
116DEFINE_FUNC(vaSetDriverName, 2, VA_STATUS_ERROR_OPERATION_FAILED);
117
118DEFINE_FUNC(vaAcquireBufferHandle, 3, VA_STATUS_ERROR_OPERATION_FAILED);
119DEFINE_FUNC(vaReleaseBufferHandle, 2, VA_STATUS_ERROR_OPERATION_FAILED);
120
121#ifdef DYNAMIC_RESOLVE_VA_DRM_SYMBOLS
122DEFINE_FUNC(vaGetDisplayDRM, 1); // va-drm
123#endif
124
125#ifdef DYNAMIC_RESOLVE_VA_X11_SYMBOLS
126DEFINE_FUNC(vaGetDisplay, 1); // va-x11
127#endif
static bool tryLoad(const Libs &libs)
Combined button and popup list for selecting options.
#define DEFINE_FUNC(F, ArgsCount,...)
std::vector< std::unique_ptr< QLibrary > > Libs
constexpr auto errorStr
constexpr auto emptyString
void resolveVAAPI()
static QT_BEGIN_NAMESPACE Libs loadLibs()
constexpr size_t symbolsCount
#define Q_GLOBAL_STATIC(TYPE, NAME,...)