NVIDIA DRIVE OS Linux SDK API Reference

6.0.4 Release
nvmedia_2d.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013-2022, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA CORPORATION and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
9  */
10 
17 
18 #ifndef NVMEDIA_2D_H
19 #define NVMEDIA_2D_H
20 
21 #include "nvmedia_core.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
35 
44 #define NVMEDIA_2D_VERSION_MAJOR 6
45 
54 #define NVMEDIA_2D_VERSION_MINOR 0
55 
62 #define NVMEDIA_2D_VERSION_PATCH 0
63 
68 typedef enum
69 {
72 
75 
78 
81 
83 
151 typedef enum
152 {
155 
158 
161 
164 
167 
171 
174 
178 
180 
183 typedef enum
184 {
192 
203 
215 
226 
228 
239 typedef struct
240 {
247 
253 
259 
265 
267  uint32_t flags;
268 
270 
289 typedef uint32_t NvMedia2DComposeParameters;
290 
302 typedef uint32_t NvMedia2DFilterBuffer;
303 
314 typedef struct
315 {
321  uint64_t operationId;
322 
324 
335 typedef struct
336 {
338  int16_t coeffs[32][5];
340 
351 typedef struct
352 {
354  int16_t coeffs[32][10];
356 
397 
406 typedef struct NvMedia2D NvMedia2D;
407 
457 NvMedia2DCreate(NvMedia2D **handle,
458  NvMedia2DAttributes const * const attr);
459 
468 // completed.
502 NvMedia2DDestroy(NvMedia2D *handle);
503 
551 
666 NvMedia2DCompose(NvMedia2D * const handle,
667  NvMedia2DComposeParameters const params,
668  NvMedia2DComposeResult * const result);
669 
711 NvMedia2DSetSrcGeometry(NvMedia2D * const handle,
712  NvMedia2DComposeParameters const params,
713  uint32_t const index,
714  NvMediaRect const * const srcRect,
715  NvMediaRect const * const dstRect,
716  NvMedia2DTransform const transform);
717 
752 NvMedia2DSetSrcFilter(NvMedia2D * const handle,
753  NvMedia2DComposeParameters const params,
754  uint32_t const index,
755  NvMedia2DFilter const filter);
756 
795 NvMedia2DSetSrcBlendMode(NvMedia2D *const handle,
796  NvMedia2DComposeParameters const params,
797  uint32_t const index,
798  NvMedia2DBlendMode const blendMode,
799  float const constantAlpha);
800 
846  NvMedia2DFilterBuffer * const filterBuffer);
847 
888  NvMedia2DFilterBuffer const filterBuffer);
889 
941 NvMedia2DSetFilterBuffer(NvMedia2D * const handle,
942  NvMedia2DComposeParameters const params,
943  NvMedia2DFilterBuffer const filterBuffer);
944 
1001  NvMedia2DFilterBuffer const filterBuffer,
1002  uint32_t const index,
1003  NvMedia2DFilterCoefficients5Tap const * const lumaX,
1004  NvMedia2DFilterCoefficients5Tap const * const lumaY,
1005  NvMedia2DFilterCoefficients5Tap const * const chromaX,
1006  NvMedia2DFilterCoefficients5Tap const * const chromaY);
1007 
1064  NvMedia2DFilterBuffer const filterBuffer,
1065  uint32_t const index,
1066  NvMedia2DFilterCoefficients10Tap const * const lumaX,
1067  NvMedia2DFilterCoefficients10Tap const * const lumaY,
1068  NvMedia2DFilterCoefficients10Tap const * const chromaX,
1069  NvMedia2DFilterCoefficients10Tap const * const chromaY);
1070 
1074 
1075 //
1076 // Version History
1077 //
1078 // Version 1.1 February 1, 2016
1079 // - Initial release
1080 //
1081 // Version 1.2 May 11, 2016
1082 // - Added #NvMedia2DCheckVersion API
1083 //
1084 // Version 1.3 May 5, 2017
1085 // - Removed compositing, blending and alpha related defines and structures
1086 //
1087 // Version 2.0 May 11, 2017
1088 // - Deprecated NvMedia2DBlit API
1089 // - Deprecated NvMedia2DCheckVersion API
1090 // - Deprecated NvMedia2DColorStandard, NvMedia2DColorRange and
1091 // NvMedia2DColorMatrix types
1092 // - Added #NvMedia2DGetVersion API
1093 //
1094 // Version 2.1 May 17, 2017
1095 // - Moved transformation to nvmedia_common.h
1096 // - Renamed NvMedia2DTransform to #NvMediaTransform
1097 //
1098 // Version 2.2 September 4, 2018
1099 // - Added deprecated warning message for #NvMedia2DCopyPlane,
1100 // NvMedia2DWeave
1101 // - Added APIs #NvMedia2DCopyPlaneNew, #NvMedia2DWeaveNew
1102 //
1103 // Version 3.0 October 30, 2018
1104 // - Deprecated #NvMedia2DCopyPlane API
1105 // - Deprecated #NvMedia2DWeave API
1106 //
1107 // Version 3.1 December 11, 2018
1108 // - Fixed MISRA-C Rule 21.1 and 21.2 Violations
1109 //
1110 // Version 3.2 January 21, 2019
1111 // - Moved #NvMediaTransform from nvmedia_common.h to this header
1112 //
1113 // Version 3.3 Feb 21, 2019
1114 // - Changed #NvMedia2D type from void to struct
1115 //
1116 // Version 3.4 March 5, 2019
1117 // - Fixed MISRA-C Rule 8.13 Violations
1118 //
1119 // Version 3.5 March 14, 2019
1120 // - Removing NvMedia2DBlitFlags enum definition
1121 // - updated #NvMedia2DBlitParametersOut structure definition
1122 //
1123 // Version 3.6 March 18, 2019
1124 // - Added APIs #NvMedia2DImageRegister, #NvMedia2DImageUnRegister
1125 //
1126 // Version 3.7 March 22, 2019
1127 // - Unnecessary header include nvmedia_common.h has been removed
1128 //
1129 // Version 3.8 May 18, 2020
1130 // - Changes related to MISRA-C Rule 8.13 Violations fixes.
1131 //
1132 // Version 3.9 Nov 12, 2020
1133 // - Improved comments and documentation
1134 // - Introduce NvMedia2DDestroyEx, which returns an error unlike NvMedia2DDestroy
1135 // - NvMedia2DDestroy is marked as deprecated
1136 // - NVMEDIA_STATUS_UNDEFINED_STATE is returned
1137 // instead of NVMEDIA_STATUS_BAD_PARAMETER if error happens
1138 // after submit is started
1139 //
1140 // Version 3.10 January 25, 2021
1141 // - Remove NvMedia2DWeaveNew API.
1142 //
1143 // Version 4.0 September 23, 2021
1144 // - Remove NvMedia2DCopyPlaneNew API.
1145 // - Remove NvMedia2DBlitEx API.
1146 // - Remove NvMedia2DImageRegister API.
1147 // - Remove NvMedia2DImageUnregister API.
1148 // - Remove NvMedia2DDestroyEx API.
1149 // - Remove NvMedia2DNvSciSyncGetVersion API.
1150 // - Remove NVMEDIA_2D_NVSCISYNC_VERSION_MAJOR token.
1151 // - Remove NVMEDIA_2D_NVSCISYNC_VERSION_MINOR token.
1152 // - Change prototype for NvMedia2DCreate API.
1153 // - Change prototype for NvMedia2DDestroy API.
1154 // - Change prototype for NvMedia2DSetNvSciSyncObjforEOF API.
1155 // - Change prototype for NvMedia2DInsertPreNvSciSyncFence API.
1156 // - Change prototype for NvMedia2DGetEOFNvSciSyncFence API.
1157 // - Rename NvMedia2DStretchFilter to NvMedia2DFilter.
1158 // - Rename NvMediaTransform to NvMedia2DTransform.
1159 // - Add NVMEDIA_2D_VERSION_PATCH token.
1160 // - Add NvMedia2DCompose API.
1161 // - Add NvMedia2DFillNvSciBufAttrList API.
1162 // - Add NvMedia2DRegisterNvSciBufObj API.
1163 // - Add NvMedia2DUnregisterNvSciBufObj API.
1164 // - Add NvMedia2DSetSrcNvSciBufObj API.
1165 // - Add NvMedia2DSetDstNvSciBufObj API.
1166 // - Set default filter mode to NVMEDIA_2D_FILTER_OFF.
1167 //
1168 // Version 4.1 November 15, 2021
1169 // - Add NvMedia2DSetSrcBlendMode API.
1170 //
1171 // Version 4.2 November 29, 2021
1172 // - Add refcounting to NvMedia2DRegisterNvSciBufObj/UnregisterNvSciBufObj API.
1173 //
1174 // Version 4.3 March 8, 2022
1175 // - Add NvMedia2DCreateFilterBuffer API.
1176 // - Add NvMedia2DDestroyFilterBuffer API.
1177 // - Add NvMedia2DSetFilterBuffer API.
1178 // - Add NvMedia2DComputeFilterCoefficients5Tap API.
1179 // - Add NvMedia2DComputeFilterCoefficients10Tap API.
1180 //
1181 // Version 5.0.0 March 28, 2022
1182 // - Add support for NvSciSync task statuses
1183 // - Max pre-fence count changed from 32 to 16
1184 //
1185 // Version 6.0.0 June 3, 2022
1186 // - Change default for maxRegisteredBuffers attribute from 256 to 64
1187 // - Forbid registering same buffer multiple times
1188 // - Error codes changed for multiple APIs
1189 //
1190 
1191 #ifdef __cplusplus
1192 }
1193 #endif
1194 
1195 #endif // NVMEDIA_2D_H
NvMedia2DFilterCoefficients5Tap
Coefficients values structure for 5-tap custom filter.
Definition: nvmedia_2d.h:335
NVMEDIA_2D_FILTER_OFF
@ NVMEDIA_2D_FILTER_OFF
Filtering is disabled.
Definition: nvmedia_2d.h:71
NVMEDIA_2D_BLEND_MODE_CONSTANT_ALPHA
@ NVMEDIA_2D_BLEND_MODE_CONSTANT_ALPHA
Ignore the alpha channel values.
Definition: nvmedia_2d.h:202
NvMedia2DAttributes::flags
uint32_t flags
Internal use only.
Definition: nvmedia_2d.h:267
NvMedia2DAttributes
Attributes structure for NvMedia2DCreate().
Definition: nvmedia_2d.h:239
NvMedia2DFilter
NvMedia2DFilter
2D filter mode.
Definition: nvmedia_2d.h:68
NvMedia2DFilterCoefficients10Tap
Coefficients values structure for 10-tap custom filter.
Definition: nvmedia_2d.h:351
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:170
NVMEDIA_2D_TRANSFORM_TRANSPOSE
@ NVMEDIA_2D_TRANSFORM_TRANSPOSE
Apply transpose (mirror along diagonal axis from top-left to bottom-right).
Definition: nvmedia_2d.h:177
NvMedia2D
struct NvMedia2D NvMedia2D
NvMedia2D Context.
Definition: nvmedia_2d.h:406
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:314
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:214
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:191
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:252
NVMEDIA_2D_FILTER_MEDIUM
@ NVMEDIA_2D_FILTER_MEDIUM
Medium quality filtering.
Definition: nvmedia_2d.h:77
NvMedia2DFilterBuffer
uint32_t NvMedia2DFilterBuffer
Stores a filter buffer which coefficients can be configured.
Definition: nvmedia_2d.h:302
NvMediaVersion
Holds NvMedia version information.
Definition: nvmedia_core.h:149
NVMEDIA_2D_FILTER_LOW
@ NVMEDIA_2D_FILTER_LOW
Low quality filtering.
Definition: nvmedia_2d.h:74
NVMEDIA_2D_FILTER_HIGH
@ NVMEDIA_2D_FILTER_HIGH
Highest quality filtering.
Definition: nvmedia_2d.h:80
NvMedia2DComposeResult::operationId
uint64_t operationId
ID number for operation that was submitted to NvMedia2DCompose().
Definition: nvmedia_2d.h:321
NvMedia2DBlendMode
NvMedia2DBlendMode
Blending to use when compositing surfaces.
Definition: nvmedia_2d.h:183
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:264
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:160
NvMedia2DComposeParameters
uint32_t NvMedia2DComposeParameters
Stores configuration for the NvMedia2DCompose() operation.
Definition: nvmedia_2d.h:289
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:225
NVMEDIA_2D_TRANSFORM_ROTATE_90
@ NVMEDIA_2D_TRANSFORM_ROTATE_90
Rotate 90 degrees anti-clockwise.
Definition: nvmedia_2d.h:157
NVMEDIA_2D_TRANSFORM_NONE
@ NVMEDIA_2D_TRANSFORM_NONE
No transform.
Definition: nvmedia_2d.h:154
NVMEDIA_2D_TRANSFORM_ROTATE_270
@ NVMEDIA_2D_TRANSFORM_ROTATE_270
Rotate 270 degrees anti-clockwise.
Definition: nvmedia_2d.h:163
NvMedia2DAttributes::maxRegisteredSyncs
uint32_t maxRegisteredSyncs
Maximum number of sync objects that can be registered.
Definition: nvmedia_2d.h:258
NVMEDIA_2D_TRANSFORM_FLIP_HORIZONTAL
@ NVMEDIA_2D_TRANSFORM_FLIP_HORIZONTAL
Flip horizontally (mirror along Y axis).
Definition: nvmedia_2d.h:166
NvMedia2DCreateFilterBuffer
NvMediaStatus NvMedia2DCreateFilterBuffer(NvMedia2D *const handle, NvMedia2DFilterBuffer *const filterBuffer)
Creates and returns an NvMedia2DFilterBuffer instance.
NvMedia2DTransform
NvMedia2DTransform
2D rotation/transform.
Definition: nvmedia_2d.h:151
NVMEDIA_2D_TRANSFORM_FLIP_VERTICAL
@ NVMEDIA_2D_TRANSFORM_FLIP_VERTICAL
Flip vertically (mirror along X axis).
Definition: nvmedia_2d.h:173
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:246
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.