Skip to content

Commit ed8a2de

Browse files
authored
Update to oneVPL Spec v2.5 (#361)
1 parent be091a2 commit ed8a2de

35 files changed

+1310
-252
lines changed

oneapi-doc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"version": "1.1-provisional-rev-2",
3-
"vpl_version": "2.4.0",
3+
"vpl_version": "2.5.0",
44
"art_version": "0.5-rev-1"
55
}

releases/index.rst

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,9 @@ oneVPL
175175
* - Version
176176
- Date
177177
- View
178+
* - `oneVPL v2.5.0`_
179+
- 2021-8-30
180+
- `HTML <https://spec.oneapi.io/onevpl/2.5.0/index.html>`__
178181
* - `oneVPL v2.4.0`_
179182
- 2021-5-12
180183
- `HTML <https://spec.oneapi.io/onevpl/2.4.0/index.html>`__
@@ -185,6 +188,42 @@ oneVPL
185188
Release Notes
186189
-------------
187190

191+
oneVPL v2.5.0
192+
~~~~~~~~~~~~~
193+
194+
New in this release:
195+
196+
* Added mfxMediaAdapterType to capability reporting.
197+
* Added surface pool interface.
198+
* Helper macro definition to simplify filter properties set up process
199+
for dispatcher.
200+
* Added mfxExtAV1BitstreamParam, mfxExtAV1ResolutionParam and
201+
mfxExtAV1TileParam for AV1e.
202+
* Added MFX_RESOURCE_VA_SURFACE_PTR and MFX_RESOURCE_VA_BUFFER_PTR
203+
enumerators.
204+
* Clarified HEVC Main 10 Still Picture Profile configuration.
205+
* External Buffer ID of mfxExtVideoSignalInfo and
206+
mfxExtMasteringDisplayColourVolume for video processing.
207+
* New MFX_WRN_ALLOC_TIMEOUT_EXPIRED return status. Indicates that all
208+
surfaces are currently in use and timeout set by
209+
mfxExtAllocationHints for allocation of new surfaces through
210+
functions GetSurfaceForXXX expired.
211+
* Introduced universal temporal layering structure.
212+
* Added MFX_RESOURCE_VA_SURFACE_PTR and MFX_RESOURCE_VA_BUFFER_PTR
213+
enumerators.
214+
* Introduced segmentation interface for AV1e, including ext-buffers
215+
and enums.
216+
* Introduced planar I422 and I210 FourCC codes.
217+
218+
Bug Fixes:
219+
220+
* Dispatcher: Removed /etc/ld.so.cache from oneVPL search order.
221+
* mfxSurfaceArray: CDECL attribute added to the member-functions.
222+
223+
Deprecated:
224+
225+
* mfxExtVPPDenoise extension buffer.
226+
188227
oneVPL v2.4.0
189228
~~~~~~~~~~~~~
190229

source/elements/oneVPL/include/vpl/mfx.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*############################################################################
2-
# Copyright (C) 2021 Intel Corporation
2+
# Copyright Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
############################################################################*/
@@ -22,4 +22,6 @@
2222
#include "mfxvp8.h"
2323
#include "mfxjpeg.h"
2424

25+
#include "mfxsurfacepool.h"
26+
2527
#endif /* __MFXDEFS_H__ */

source/elements/oneVPL/include/vpl/mfxadapter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*############################################################################
2-
# Copyright (C) 2019-2020 Intel Corporation
2+
# Copyright Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
############################################################################*/

source/elements/oneVPL/include/vpl/mfxbrc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*############################################################################
2-
# Copyright (C) 2019-2020 Intel Corporation
2+
# Copyright Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
############################################################################*/

source/elements/oneVPL/include/vpl/mfxcommon.h

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*############################################################################
2-
# Copyright (C) 2018-2020 Intel Corporation
2+
# Copyright Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
############################################################################*/
@@ -163,7 +163,7 @@ MFX_PACK_BEGIN_USUAL_STRUCT()
163163
/*! Specifies options for threads created by this session. Attached to the
164164
mfxInitParam structure during legacy Intel(r) Media SDK session initialization. */
165165
typedef struct {
166-
mfxExtBuffer Header; /*!< Must be MFX_EXTBUFF_THREADS_PARAM. */
166+
mfxExtBuffer Header; /*!< Extension buffer header. Header.BufferId must be equal to MFX_EXTBUFF_THREADS_PARAM. */
167167

168168
mfxU16 NumThread; /*!< The number of threads. */
169169
mfxI32 SchedulingType; /*!< Scheduling policy for all threads. */
@@ -222,8 +222,10 @@ MFX_PACK_END()
222222
/* The mfxResourceType enumerator specifies types of different native data frames and buffers. */
223223
typedef enum {
224224
MFX_RESOURCE_SYSTEM_SURFACE = 1, /*!< System memory. */
225-
MFX_RESOURCE_VA_SURFACE = 2, /*!< VA surface. */
226-
MFX_RESOURCE_VA_BUFFER = 3, /*!< VA buffer. */
225+
MFX_RESOURCE_VA_SURFACE_PTR = 2, /*!< Pointer to VA surface index. */
226+
MFX_RESOURCE_VA_SURFACE = MFX_RESOURCE_VA_SURFACE_PTR, /*!< Pointer to VA surface index. */
227+
MFX_RESOURCE_VA_BUFFER_PTR = 3, /*!< Pointer to VA buffer index. */
228+
MFX_RESOURCE_VA_BUFFER = MFX_RESOURCE_VA_BUFFER_PTR, /*!< Pointer to VA buffer index. */
227229
MFX_RESOURCE_DX9_SURFACE = 4, /*!< IDirect3DSurface9. */
228230
MFX_RESOURCE_DX11_TEXTURE = 5, /*!< ID3D11Texture2D. */
229231
MFX_RESOURCE_DX12_RESOURCE = 6, /*!< ID3D12Resource. */
@@ -336,13 +338,15 @@ typedef struct {
336338
} mfxVPPDescription;
337339
MFX_PACK_END()
338340

339-
#define MFX_DEVICEDESCRIPTION_VERSION MFX_STRUCT_VERSION(1, 0)
341+
/*! The current version of mfxDeviceDescription structure. */
342+
#define MFX_DEVICEDESCRIPTION_VERSION MFX_STRUCT_VERSION(1, 1)
340343

341344
MFX_PACK_BEGIN_STRUCT_W_PTR()
342345
/*! This structure represents device description. */
343346
typedef struct {
344347
mfxStructVersion Version; /*!< Version of the structure. */
345-
mfxU16 reserved[7]; /*!< reserved for future use. */
348+
mfxU16 reserved[6]; /*!< reserved for future use. */
349+
mfxU16 MediaAdapterType; /*!< Graphics adapter type. See the mfxMediaAdapterType enumerator for a list of possible values. */
346350
mfxChar DeviceID[MFX_STRFIELD_LEN]; /*!< Null terminated string with device ID. */
347351
mfxU16 NumSubDevices; /*!< Number of available uniform sub-devices. Pure software implementation can report 0. */
348352
/*! This structure represents sub-device description. */
@@ -387,7 +391,34 @@ typedef struct {
387391
} mfxAccelerationModeDescription;
388392
MFX_PACK_END()
389393

390-
#define MFX_IMPLDESCRIPTION_VERSION MFX_STRUCT_VERSION(1, 1)
394+
/*! Specifies the surface pool allocation policies. */
395+
typedef enum {
396+
/*! Recommends to limit max pool size by sum of requested surfaces asked by components. */
397+
MFX_ALLOCATION_OPTIMAL = 0,
398+
399+
/*! Dynamic allocation with no limit. */
400+
MFX_ALLOCATION_UNLIMITED = 1,
401+
402+
/*! Max pool size is limited by NumberToPreAllocate + DeltaToAllocateOnTheFly. */
403+
MFX_ALLOCATION_LIMITED = 2,
404+
405+
} mfxPoolAllocationPolicy;
406+
407+
/*! The current version of mfxPoolPolicyDescription structure. */
408+
#define MFX_POOLPOLICYDESCRIPTION_VERSION MFX_STRUCT_VERSION(1, 0)
409+
410+
MFX_PACK_BEGIN_STRUCT_W_PTR()
411+
/*! This structure represents pool policy description. */
412+
typedef struct {
413+
mfxStructVersion Version; /*!< Version of the structure. */
414+
mfxU16 reserved[2]; /*!< reserved for future use. */
415+
mfxU16 NumPoolPolicies; /*!< Number of supported pool policies. */
416+
mfxPoolAllocationPolicy* Policy; /*!< Pointer to the array of supported pool policies. */
417+
} mfxPoolPolicyDescription;
418+
MFX_PACK_END()
419+
420+
/*! The current version of mfxImplDescription structure. */
421+
#define MFX_IMPLDESCRIPTION_VERSION MFX_STRUCT_VERSION(1, 2)
391422

392423
MFX_PACK_BEGIN_STRUCT_W_PTR()
393424
/*! This structure represents the implementation description. */
@@ -410,8 +441,9 @@ typedef struct {
410441
mfxAccelerationModeDescription AccelerationModeDescription; /*!< Supported acceleration modes. */
411442
mfxU32 reserved3[4];
412443
};
413-
mfxU32 reserved[12]; /*!< Reserved for future use. */
414-
mfxU32 NumExtParam; /*!< Number of extension buffers. Reserved for future use. Must be 0. */
444+
mfxPoolPolicyDescription PoolPolicies; /*!< Supported surface pool polices. */
445+
mfxU32 reserved[8]; /*!< Reserved for future use. */
446+
mfxU32 NumExtParam; /*!< Number of extension buffers. Reserved for future use. Must be 0. */
415447
union {
416448
mfxExtBuffer **ExtParam; /*!< Array of extension buffers. */
417449
mfxU64 Reserved2; /*!< Reserved for future use. */

source/elements/oneVPL/include/vpl/mfxdefs.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*############################################################################
2-
# Copyright (C) 2019-2021 Intel Corporation
2+
# Copyright Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
############################################################################*/
@@ -8,7 +8,7 @@
88
#define __MFXDEFS_H__
99

1010
#define MFX_VERSION_MAJOR 2
11-
#define MFX_VERSION_MINOR 4
11+
#define MFX_VERSION_MINOR 5
1212

1313
// MFX_VERSION - version of API that 'assumed' by build may be provided externally
1414
// if it omitted then latest stable API derived from Major.Minor is assumed
@@ -298,6 +298,8 @@ typedef enum
298298
/* low-delay partial output */
299299
MFX_ERR_NONE_PARTIAL_OUTPUT = 12, /*!< Frame is not ready, but bitstream contains partial output. */
300300

301+
MFX_WRN_ALLOC_TIMEOUT_EXPIRED = 13, /*!< Timeout expired for internal frame allocation. */
302+
301303
/* threading statuses */
302304
MFX_TASK_DONE = MFX_ERR_NONE, /*!< Task has been completed. */
303305
MFX_TASK_WORKING = 8, /*!< There is some more work to do. */

source/elements/oneVPL/include/vpl/mfxdispatcher.h

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*############################################################################
2-
# Copyright (C) 2020 Intel Corporation
2+
# Copyright Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
############################################################################*/
@@ -147,6 +147,98 @@ mfxStatus MFX_CDECL MFXCreateSession(mfxLoader loader, mfxU32 i, mfxSession* ses
147147
*/
148148
mfxStatus MFX_CDECL MFXDispReleaseImplDescription(mfxLoader loader, mfxHDL hdl);
149149

150+
/* Helper macro definitions to add config filter properties. */
151+
152+
/*! Adds single property of mfxU32 type.
153+
@param[in] loader Valid mfxLoader object
154+
@param[in] name Property name string
155+
@param[in] value Property value
156+
*/
157+
#define MFX_ADD_PROPERTY_U32(loader, name, value) \
158+
{ \
159+
mfxVariant impl_value; \
160+
mfxConfig cfg = MFXCreateConfig(loader); \
161+
impl_value.Version.Version = MFX_VARIANT_VERSION; \
162+
impl_value.Type = MFX_VARIANT_TYPE_U32; \
163+
impl_value.Data.U32 = value; \
164+
MFXSetConfigFilterProperty(cfg, (mfxU8 *)name, impl_value); \
165+
}
166+
167+
/*! Adds single property of mfxU16 type.
168+
@param[in] loader Valid mfxLoader object
169+
@param[in] name Property name string
170+
@param[in] value Property value
171+
*/
172+
#define MFX_ADD_PROPERTY_U16(loader, name, value) \
173+
{ \
174+
mfxVariant impl_value = { 0 }; \
175+
mfxConfig cfg = MFXCreateConfig(loader); \
176+
impl_value.Version.Version = MFX_VARIANT_VERSION; \
177+
impl_value.Type = MFX_VARIANT_TYPE_U16; \
178+
impl_value.Data.U16 = value; \
179+
MFXSetConfigFilterProperty(cfg, (mfxU8 *)name, impl_value); \
180+
}
181+
182+
/*! Adds single property of pointer type.
183+
@param[in] loader Valid mfxLoader object
184+
@param[in] name Property name string
185+
@param[in] value Property value
186+
*/
187+
#define MFX_ADD_PROPERTY_PTR(loader, name, value) \
188+
{ \
189+
mfxVariant impl_value = { 0 }; \
190+
mfxConfig cfg = MFXCreateConfig(loader); \
191+
impl_value.Version.Version = MFX_VARIANT_VERSION; \
192+
impl_value.Type = MFX_VARIANT_TYPE_PTR; \
193+
impl_value.Data.Ptr = (mfxHDL)value; \
194+
MFXSetConfigFilterProperty(cfg, (mfxU8 *)name, impl_value); \
195+
}
196+
197+
/*! Update existing property of mfxU32 type.
198+
@param[in] loader Valid mfxLoader object
199+
@param[in] config Valid mfxConfig object
200+
@param[in] name Property name string
201+
@param[in] value Property value
202+
*/
203+
#define MFX_UPDATE_PROPERTY_U32(loader, config, name, value) \
204+
{ \
205+
mfxVariant impl_value; \
206+
impl_value.Version.Version = MFX_VARIANT_VERSION; \
207+
impl_value.Type = MFX_VARIANT_TYPE_U32; \
208+
impl_value.Data.U32 = value; \
209+
MFXSetConfigFilterProperty(config, (mfxU8 *)name, impl_value); \
210+
}
211+
212+
/*! Update existing property of mfxU16 type.
213+
@param[in] loader Valid mfxLoader object
214+
@param[in] config Valid mfxConfig object
215+
@param[in] name Property name string
216+
@param[in] value Property value
217+
*/
218+
#define MFX_UPDATE_PROPERTY_U16(loader, config, name, value) \
219+
{ \
220+
mfxVariant impl_value; \
221+
impl_value.Version.Version = MFX_VARIANT_VERSION; \
222+
impl_value.Type = MFX_VARIANT_TYPE_U16; \
223+
impl_value.Data.U16 = value; \
224+
MFXSetConfigFilterProperty(config, (mfxU8 *)name, impl_value); \
225+
}
226+
227+
/*! Update existing property of pointer type.
228+
@param[in] loader Valid mfxLoader object
229+
@param[in] config Valid mfxConfig object
230+
@param[in] name Property name string
231+
@param[in] value Property value
232+
*/
233+
#define MFX_UPDATE_PROPERTY_PTR(loader, config, name, value) \
234+
{ \
235+
mfxVariant impl_value; \
236+
impl_value.Version.Version = MFX_VARIANT_VERSION; \
237+
impl_value.Type = MFX_VARIANT_TYPE_PTR; \
238+
impl_value.Data.Ptr = (mfxHDL)value; \
239+
MFXSetConfigFilterProperty(config, (mfxU8 *)name, impl_value); \
240+
}
241+
150242
#ifdef __cplusplus
151243
}
152244
#endif

source/elements/oneVPL/include/vpl/mfxdispatcherprefixedfunctions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*############################################################################
2-
# Copyright (C) 2017-2020 Intel Corporation
2+
# Copyright Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
############################################################################*/

source/elements/oneVPL/include/vpl/mfximplcaps.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*############################################################################
2-
# Copyright (C) 2020 Intel Corporation
2+
# Copyright Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
############################################################################*/

0 commit comments

Comments
 (0)