Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.9 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    nvmedia_2d.h
    Go to the documentation of this file.
    1 /*
    2  * SPDX-FileCopyrightText: Copyright (c) 2013-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
    3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
    4  *
    5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
    6  * property and proprietary rights in and to this material, related
    7  * documentation and any modifications thereto. Any use, reproduction,
    8  * disclosure or distribution of this material and related documentation
    9  * without an express license agreement from NVIDIA CORPORATION or
    10  * its affiliates is strictly prohibited.
    11  */
    12 
    19 
    20 #ifndef NVMEDIA_2D_H
    21 #define NVMEDIA_2D_H
    22 
    23 #include "nvmedia_core.h"
    24 #include <stdint.h>
    25 
    26 #ifdef __cplusplus
    27 extern "C" {
    28 #endif
    29 
    38 
    47 #define NVMEDIA_2D_VERSION_MAJOR 8
    48 
    57 #define NVMEDIA_2D_VERSION_MINOR 0
    58 
    65 #define NVMEDIA_2D_VERSION_PATCH 0
    66 
    73 typedef enum
    74 {
    81 
    87 
    95 
    103 
    105 
    173 typedef enum
    174 {
    177 
    180 
    183 
    186 
    189 
    193 
    196 
    200 
    202 
    205 typedef enum
    206 {
    214 
    225 
    237 
    248 
    250 
    261 typedef struct
    262 {
    271 
    279 
    287 
    295 
    297  uint32_t flags;
    298 
    300 
    322 typedef uint32_t NvMedia2DComposeParameters;
    323 
    338 typedef uint32_t NvMedia2DFilterBuffer;
    339 
    350 typedef struct
    351 {
    357  uint64_t operationId;
    358 
    360 
    371 typedef struct
    372 {
    384  int16_t coeffs[32][5];
    386 
    397 typedef struct
    398 {
    410  int16_t coeffs[32][10];
    412 
    455 
    464 typedef struct NvMedia2D NvMedia2D;
    465 
    519 NvMedia2DCreate(NvMedia2D **handle,
    520  NvMedia2DAttributes const * const attr);
    521 
    530 // completed.
    569 NvMedia2DDestroy(NvMedia2D *handle);
    570 
    621 
    778 NvMedia2DCompose(NvMedia2D * const handle,
    779  NvMedia2DComposeParameters const params,
    780  NvMedia2DComposeResult * const result);
    781 
    830 NvMedia2DSetSrcGeometry(NvMedia2D * const handle,
    831  NvMedia2DComposeParameters const params,
    832  uint32_t const index,
    833  NvMediaRect const * const srcRect,
    834  NvMediaRect const * const dstRect,
    835  NvMedia2DTransform const transform);
    836 
    878 NvMedia2DSetSrcFilter(NvMedia2D * const handle,
    879  NvMedia2DComposeParameters const params,
    880  uint32_t const index,
    881  NvMedia2DFilter const filter);
    882 
    927 NvMedia2DSetSrcBlendMode(NvMedia2D *const handle,
    928  NvMedia2DComposeParameters const params,
    929  uint32_t const index,
    930  NvMedia2DBlendMode const blendMode,
    931  float const constantAlpha);
    932 
    985  NvMedia2DFilterBuffer * const filterBuffer);
    986 
    1034  NvMedia2DFilterBuffer const filterBuffer);
    1035 
    1095 NvMedia2DSetFilterBuffer(NvMedia2D * const handle,
    1096  NvMedia2DComposeParameters const params,
    1097  NvMedia2DFilterBuffer const filterBuffer);
    1098 
    1161  NvMedia2DFilterBuffer const filterBuffer,
    1162  uint32_t const index,
    1163  NvMedia2DFilterCoefficients5Tap const * const lumaX,
    1164  NvMedia2DFilterCoefficients5Tap const * const lumaY,
    1165  NvMedia2DFilterCoefficients5Tap const * const chromaX,
    1166  NvMedia2DFilterCoefficients5Tap const * const chromaY);
    1167 
    1230  NvMedia2DFilterBuffer const filterBuffer,
    1231  uint32_t const index,
    1232  NvMedia2DFilterCoefficients10Tap const * const lumaX,
    1233  NvMedia2DFilterCoefficients10Tap const * const lumaY,
    1234  NvMedia2DFilterCoefficients10Tap const * const chromaX,
    1235  NvMedia2DFilterCoefficients10Tap const * const chromaY);
    1236 
    1240 
    1241 //
    1242 // Version History
    1243 //
    1244 // Version 1.1 February 1, 2016
    1245 // - Initial release
    1246 //
    1247 // Version 1.2 May 11, 2016
    1248 // - Added #NvMedia2DCheckVersion API
    1249 //
    1250 // Version 1.3 May 5, 2017
    1251 // - Removed compositing, blending and alpha related defines and structures
    1252 //
    1253 // Version 2.0 May 11, 2017
    1254 // - Deprecated NvMedia2DBlit API
    1255 // - Deprecated NvMedia2DCheckVersion API
    1256 // - Deprecated NvMedia2DColorStandard, NvMedia2DColorRange and
    1257 // NvMedia2DColorMatrix types
    1258 // - Added #NvMedia2DGetVersion API
    1259 //
    1260 // Version 2.1 May 17, 2017
    1261 // - Moved transformation to nvmedia_common.h
    1262 // - Renamed NvMedia2DTransform to #NvMediaTransform
    1263 //
    1264 // Version 2.2 September 4, 2018
    1265 // - Added deprecated warning message for #NvMedia2DCopyPlane,
    1266 // NvMedia2DWeave
    1267 // - Added APIs #NvMedia2DCopyPlaneNew, #NvMedia2DWeaveNew
    1268 //
    1269 // Version 3.0 October 30, 2018
    1270 // - Deprecated #NvMedia2DCopyPlane API
    1271 // - Deprecated #NvMedia2DWeave API
    1272 //
    1273 // Version 3.1 December 11, 2018
    1274 // - Fixed MISRA-C Rule 21.1 and 21.2 Violations
    1275 //
    1276 // Version 3.2 January 21, 2019
    1277 // - Moved #NvMediaTransform from nvmedia_common.h to this header
    1278 //
    1279 // Version 3.3 Feb 21, 2019
    1280 // - Changed #NvMedia2D type from void to struct
    1281 //
    1282 // Version 3.4 March 5, 2019
    1283 // - Fixed MISRA-C Rule 8.13 Violations
    1284 //
    1285 // Version 3.5 March 14, 2019
    1286 // - Removing NvMedia2DBlitFlags enum definition
    1287 // - updated #NvMedia2DBlitParametersOut structure definition
    1288 //
    1289 // Version 3.6 March 18, 2019
    1290 // - Added APIs #NvMedia2DImageRegister, #NvMedia2DImageUnRegister
    1291 //
    1292 // Version 3.7 March 22, 2019
    1293 // - Unnecessary header include nvmedia_common.h has been removed
    1294 //
    1295 // Version 3.8 May 18, 2020
    1296 // - Changes related to MISRA-C Rule 8.13 Violations fixes.
    1297 //
    1298 // Version 3.9 Nov 12, 2020
    1299 // - Improved comments and documentation
    1300 // - Introduce NvMedia2DDestroyEx, which returns an error unlike NvMedia2DDestroy
    1301 // - NvMedia2DDestroy is marked as deprecated
    1302 // - NVMEDIA_STATUS_UNDEFINED_STATE is returned
    1303 // instead of NVMEDIA_STATUS_BAD_PARAMETER if error happens
    1304 // after submit is started
    1305 //
    1306 // Version 3.10 January 25, 2021
    1307 // - Remove NvMedia2DWeaveNew API.
    1308 //
    1309 // Version 4.0 September 23, 2021
    1310 // - Remove NvMedia2DCopyPlaneNew API.
    1311 // - Remove NvMedia2DBlitEx API.
    1312 // - Remove NvMedia2DImageRegister API.
    1313 // - Remove NvMedia2DImageUnregister API.
    1314 // - Remove NvMedia2DDestroyEx API.
    1315 // - Remove NvMedia2DNvSciSyncGetVersion API.
    1316 // - Remove NVMEDIA_2D_NVSCISYNC_VERSION_MAJOR token.
    1317 // - Remove NVMEDIA_2D_NVSCISYNC_VERSION_MINOR token.
    1318 // - Change prototype for NvMedia2DCreate API.
    1319 // - Change prototype for NvMedia2DDestroy API.
    1320 // - Change prototype for NvMedia2DSetNvSciSyncObjforEOF API.
    1321 // - Change prototype for NvMedia2DInsertPreNvSciSyncFence API.
    1322 // - Change prototype for NvMedia2DGetEOFNvSciSyncFence API.
    1323 // - Rename NvMedia2DStretchFilter to NvMedia2DFilter.
    1324 // - Rename NvMediaTransform to NvMedia2DTransform.
    1325 // - Add NVMEDIA_2D_VERSION_PATCH token.
    1326 // - Add NvMedia2DCompose API.
    1327 // - Add NvMedia2DFillNvSciBufAttrList API.
    1328 // - Add NvMedia2DRegisterNvSciBufObj API.
    1329 // - Add NvMedia2DUnregisterNvSciBufObj API.
    1330 // - Add NvMedia2DSetSrcNvSciBufObj API.
    1331 // - Add NvMedia2DSetDstNvSciBufObj API.
    1332 // - Set default filter mode to NVMEDIA_2D_FILTER_OFF.
    1333 //
    1334 // Version 4.1 November 15, 2021
    1335 // - Add NvMedia2DSetSrcBlendMode API.
    1336 //
    1337 // Version 4.2 November 29, 2021
    1338 // - Add refcounting to NvMedia2DRegisterNvSciBufObj/UnregisterNvSciBufObj API.
    1339 //
    1340 // Version 4.3 March 8, 2022
    1341 // - Add NvMedia2DCreateFilterBuffer API.
    1342 // - Add NvMedia2DDestroyFilterBuffer API.
    1343 // - Add NvMedia2DSetFilterBuffer API.
    1344 // - Add NvMedia2DComputeFilterCoefficients5Tap API.
    1345 // - Add NvMedia2DComputeFilterCoefficients10Tap API.
    1346 //
    1347 // Version 5.0.0 March 28, 2022
    1348 // - Add support for NvSciSync task statuses
    1349 // - Max pre-fence count changed from 32 to 16
    1350 //
    1351 // Version 6.0.0 June 3, 2022
    1352 // - Change default for maxRegisteredBuffers attribute from 256 to 64
    1353 // - Forbid registering same buffer multiple times
    1354 // - Error codes changed for multiple APIs
    1355 //
    1356 // Version 7.0.0 July 8, 2022
    1357 // - New error NVMEDIA_STATUS_INVALID_STATE added for multiple APIs
    1358 //
    1359 // Version 7.0.1 August 25, 2022
    1360 // - Allow NULL context handle in NvMedia2DFillNvSciBufAttrList
    1361 //
    1362 // Version 7.0.2 September 2, 2022
    1363 // - Always treat compose parameters and filter buffer handle value 0 as invalid
    1364 //
    1365 // Version 8.0.0 October 17, 2023
    1366 // - Update the logic to compute the filter buffer coefficients values
    1367 //
    1368 
    1369 #ifdef __cplusplus
    1370 }
    1371 #endif
    1372 
    1373 #endif // NVMEDIA_2D_H
    NvMedia2DFilterCoefficients5Tap
    Coefficients values structure for 5-tap custom filter.
    Definition: nvmedia_2d.h:371
    NVMEDIA_2D_FILTER_OFF
    @ NVMEDIA_2D_FILTER_OFF
    Filtering is disabled.
    Definition: nvmedia_2d.h:80
    NVMEDIA_2D_BLEND_MODE_CONSTANT_ALPHA
    @ NVMEDIA_2D_BLEND_MODE_CONSTANT_ALPHA
    Ignore the alpha channel values.
    Definition: nvmedia_2d.h:224
    NvMedia2DAttributes::flags
    uint32_t flags
    Internal use only.
    Definition: nvmedia_2d.h:297
    NvMedia2DAttributes
    Attributes structure for NvMedia2DCreate().
    Definition: nvmedia_2d.h:261
    NvMedia2DFilter
    NvMedia2DFilter
    2D filter mode.
    Definition: nvmedia_2d.h:73
    NvMedia2DFilterCoefficients10Tap
    Coefficients values structure for 10-tap custom filter.
    Definition: nvmedia_2d.h:397
    NVMEDIA_2D_TRANSFORM_INV_TRANSPOSE
    @ NVMEDIA_2D_TRANSFORM_INV_TRANSPOSE
    Apply inverse transpose (mirror along diagonal axis from top-right to bottom-left).
    Definition: nvmedia_2d.h:192
    NVMEDIA_2D_TRANSFORM_TRANSPOSE
    @ NVMEDIA_2D_TRANSFORM_TRANSPOSE
    Apply transpose (mirror along diagonal axis from top-left to bottom-right).
    Definition: nvmedia_2d.h:199
    NvMedia2D
    struct NvMedia2D NvMedia2D
    NvMedia2D Context.
    Definition: nvmedia_2d.h:464
    NvMedia2DGetVersion
    NvMediaStatus NvMedia2DGetVersion(NvMediaVersion *version)
    Returns the version number of the NvMedia 2D library.
    NvMedia2DDestroy
    NvMediaStatus NvMedia2DDestroy(NvMedia2D *handle)
    Destroys the NvMedia2D context.
    NvMedia2DCompose
    NvMediaStatus NvMedia2DCompose(NvMedia2D *const handle, NvMedia2DComposeParameters const params, NvMedia2DComposeResult *const result)
    Performs a 2D compose operation.
    NvMediaStatus
    NvMediaStatus
    Defines all possible error codes.
    Definition: nvmedia_core.h:104
    NvMedia2DCreate
    NvMediaStatus NvMedia2DCreate(NvMedia2D **handle, NvMedia2DAttributes const *const attr)
    Creates a new NvMedia2D context.
    NvMedia2DComposeResult
    Stores information returned from NvMedia2DCompose().
    Definition: nvmedia_2d.h:350
    NvMedia2DComputeFilterCoefficients10Tap
    NvMediaStatus NvMedia2DComputeFilterCoefficients10Tap(NvMedia2D *const handle, NvMedia2DFilterBuffer const filterBuffer, uint32_t const index, NvMedia2DFilterCoefficients10Tap const *const lumaX, NvMedia2DFilterCoefficients10Tap const *const lumaY, NvMedia2DFilterCoefficients10Tap const *const chromaX, NvMedia2DFilterCoefficients10Tap const *const chromaY)
    Computes the 10-tap filter coefficients for an NvMedia2DFilterBuffer.
    NVMEDIA_2D_BLEND_MODE_STRAIGHT_ALPHA
    @ NVMEDIA_2D_BLEND_MODE_STRAIGHT_ALPHA
    Treat color and alpha channels independently.
    Definition: nvmedia_2d.h:236
    NvMedia2DSetFilterBuffer
    NvMediaStatus NvMedia2DSetFilterBuffer(NvMedia2D *const handle, NvMedia2DComposeParameters const params, NvMedia2DFilterBuffer const filterBuffer)
    Sets the filter buffer for an NvMedia2DComposeParameters instance.
    NVMEDIA_2D_BLEND_MODE_DISABLED
    @ NVMEDIA_2D_BLEND_MODE_DISABLED
    Disable blending.
    Definition: nvmedia_2d.h:213
    NvMedia2DComputeFilterCoefficients5Tap
    NvMediaStatus NvMedia2DComputeFilterCoefficients5Tap(NvMedia2D *const handle, NvMedia2DFilterBuffer const filterBuffer, uint32_t const index, NvMedia2DFilterCoefficients5Tap const *const lumaX, NvMedia2DFilterCoefficients5Tap const *const lumaY, NvMedia2DFilterCoefficients5Tap const *const chromaX, NvMedia2DFilterCoefficients5Tap const *const chromaY)
    Computes the 5-tap filter coefficients for an NvMedia2DFilterBuffer.
    NvMedia2DAttributes::maxRegisteredBuffers
    uint32_t maxRegisteredBuffers
    Maximum number of buffers that can be registered.
    Definition: nvmedia_2d.h:278
    NVMEDIA_2D_FILTER_MEDIUM
    @ NVMEDIA_2D_FILTER_MEDIUM
    Medium quality filtering.
    Definition: nvmedia_2d.h:94
    NvMedia2DFilterBuffer
    uint32_t NvMedia2DFilterBuffer
    Stores a filter buffer which coefficients can be configured.
    Definition: nvmedia_2d.h:338
    NvMediaVersion
    Holds NvMedia version information.
    Definition: nvmedia_core.h:164
    NVMEDIA_2D_FILTER_LOW
    @ NVMEDIA_2D_FILTER_LOW
    Low quality filtering.
    Definition: nvmedia_2d.h:86
    NVMEDIA_2D_FILTER_HIGH
    @ NVMEDIA_2D_FILTER_HIGH
    Highest quality filtering.
    Definition: nvmedia_2d.h:102
    NvMedia2DComposeResult::operationId
    uint64_t operationId
    ID number for operation that was submitted to NvMedia2DCompose().
    Definition: nvmedia_2d.h:357
    NvMedia2DBlendMode
    NvMedia2DBlendMode
    Blending to use when compositing surfaces.
    Definition: nvmedia_2d.h:205
    NvMedia2DDestroyFilterBuffer
    NvMediaStatus NvMedia2DDestroyFilterBuffer(NvMedia2D *const handle, NvMedia2DFilterBuffer const filterBuffer)
    Destroys an NvMedia2DFilterBuffer instance.
    NvMedia2DAttributes::maxFilterBuffers
    uint32_t maxFilterBuffers
    Maximum number of filter buffers that can be created.
    Definition: nvmedia_2d.h:294
    NvMediaRect
    Holds a rectangular region of a surface.
    Definition: nvmedia_core.h:89
    nvmedia_core.h
    NVIDIA Media Interface: Core
    NVMEDIA_2D_TRANSFORM_ROTATE_180
    @ NVMEDIA_2D_TRANSFORM_ROTATE_180
    Rotate 180 degrees.
    Definition: nvmedia_2d.h:182
    NvMedia2DComposeParameters
    uint32_t NvMedia2DComposeParameters
    Stores configuration for the NvMedia2DCompose() operation.
    Definition: nvmedia_2d.h:322
    NVMEDIA_2D_BLEND_MODE_PREMULTIPLIED_ALPHA
    @ NVMEDIA_2D_BLEND_MODE_PREMULTIPLIED_ALPHA
    Treat color channels as having the alpha channel premultiplied.
    Definition: nvmedia_2d.h:247
    NVMEDIA_2D_TRANSFORM_ROTATE_90
    @ NVMEDIA_2D_TRANSFORM_ROTATE_90
    Rotate 90 degrees anti-clockwise.
    Definition: nvmedia_2d.h:179
    NVMEDIA_2D_TRANSFORM_NONE
    @ NVMEDIA_2D_TRANSFORM_NONE
    No transform.
    Definition: nvmedia_2d.h:176
    NVMEDIA_2D_TRANSFORM_ROTATE_270
    @ NVMEDIA_2D_TRANSFORM_ROTATE_270
    Rotate 270 degrees anti-clockwise.
    Definition: nvmedia_2d.h:185
    NvMedia2DAttributes::maxRegisteredSyncs
    uint32_t maxRegisteredSyncs
    Maximum number of sync objects that can be registered.
    Definition: nvmedia_2d.h:286
    NVMEDIA_2D_TRANSFORM_FLIP_HORIZONTAL
    @ NVMEDIA_2D_TRANSFORM_FLIP_HORIZONTAL
    Flip horizontally (mirror along Y axis).
    Definition: nvmedia_2d.h:188
    NvMedia2DCreateFilterBuffer
    NvMediaStatus NvMedia2DCreateFilterBuffer(NvMedia2D *const handle, NvMedia2DFilterBuffer *const filterBuffer)
    Creates and returns an NvMedia2DFilterBuffer instance.
    NvMedia2DTransform
    NvMedia2DTransform
    2D rotation/transform.
    Definition: nvmedia_2d.h:173
    NVMEDIA_2D_TRANSFORM_FLIP_VERTICAL
    @ NVMEDIA_2D_TRANSFORM_FLIP_VERTICAL
    Flip vertically (mirror along X axis).
    Definition: nvmedia_2d.h:195
    NvMedia2DSetSrcGeometry
    NvMediaStatus NvMedia2DSetSrcGeometry(NvMedia2D *const handle, NvMedia2DComposeParameters const params, uint32_t const index, NvMediaRect const *const srcRect, NvMediaRect const *const dstRect, NvMedia2DTransform const transform)
    Sets the geometry for a source layer.
    NvMedia2DGetComposeParameters
    NvMediaStatus NvMedia2DGetComposeParameters(NvMedia2D *const handle, NvMedia2DComposeParameters *params)
    Returns an NvMedia2DComposeParameters instance.
    NvMedia2DSetSrcFilter
    NvMediaStatus NvMedia2DSetSrcFilter(NvMedia2D *const handle, NvMedia2DComposeParameters const params, uint32_t const index, NvMedia2DFilter const filter)
    Sets the filter mode for a source layer.
    NvMedia2DAttributes::numComposeParameters
    uint32_t numComposeParameters
    Number of compose parameters objects to allocate.
    Definition: nvmedia_2d.h:270
    NvMedia2DSetSrcBlendMode
    NvMediaStatus NvMedia2DSetSrcBlendMode(NvMedia2D *const handle, NvMedia2DComposeParameters const params, uint32_t const index, NvMedia2DBlendMode const blendMode, float const constantAlpha)
    Sets the blend mode for a source layer.
    人人超碰97caoporen国产