NVIDIA DRIVE OS Linux SDK API Reference

5.1.15.0 Release
For Test and Development only
nvmedia_surface.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017-2020, NVIDIA CORPORATION. All rights reserved. All
3  * information contained herein is proprietary and confidential to NVIDIA
4  * Corporation. Any use, reproduction, or disclosure without the written
5  * permission of NVIDIA Corporation is prohibited.
6  */
7 
16 #ifndef NVMEDIA_SURFACE_H
17 #define NVMEDIA_SURFACE_H
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 #include "nvmedia_core.h"
24 
44 #define NVMEDIA_SURFACE_VERSION_MAJOR (1u)
45 
46 #define NVMEDIA_SURFACE_VERSION_MINOR (14u)
47 
48 
55 typedef enum {
87 
90 #define NVM_SURF_ATTR_SURF_TYPE_YUV (0x00000001u)
91 
92 #define NVM_SURF_ATTR_SURF_TYPE_RGBA (0x00000002u)
93 
94 #define NVM_SURF_ATTR_SURF_TYPE_RAW (0x00000003u)
95 
98 #define NVM_SURF_ATTR_LAYOUT_BL (0x00000001u)
99 
100 #define NVM_SURF_ATTR_LAYOUT_PL (0x00000002u)
101 
104 #define NVM_SURF_ATTR_DATA_TYPE_UINT (0x00000001u)
105 
106 #define NVM_SURF_ATTR_DATA_TYPE_INT (0x00000002u)
107 
108 #define NVM_SURF_ATTR_DATA_TYPE_FLOAT (0x00000003u)
109 
110 #define NVM_SURF_ATTR_DATA_TYPE_FLOATISP (0x00000004u)
111 
114 #define NVM_SURF_ATTR_MEMORY_PLANAR (0x00000001u)
115 
116 #define NVM_SURF_ATTR_MEMORY_SEMI_PLANAR (0x00000002u)
117 
118 #define NVM_SURF_ATTR_MEMORY_PACKED (0x00000003u)
119 
124 #define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_420 (0x00000001u)
125 
126 #define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_422 (0x00000002u)
127 
128 #define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_444 (0x00000003u)
129 
130 #define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_422R (0x00000004u)
131 
132 #define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_NONE (0x00000000u)
133 
138 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_8 (0x00000001u)
139 
140 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_10 (0x00000002u)
141 
142 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_12 (0x00000003u)
143 
144 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_14 (0x00000004u)
145 
146 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_16 (0x00000005u)
147 
148 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_32 (0x00000006u)
149 
151 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_16_8_8 (0x00000007u)
152 
153 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_10_8_8 (0x00000008u)
154 
155 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_2_10_10_10 (0x00000009u)
156 
157 #define NVM_SURF_ATTR_BITS_PER_COMPONENT_20 (0x0000000Au)
158 
161 #define NVM_SURF_ATTR_COMPONENT_ORDER_LUMA (0x00000001u)
162 
163 #define NVM_SURF_ATTR_COMPONENT_ORDER_YUV (0x00000002u)
164 
165 #define NVM_SURF_ATTR_COMPONENT_ORDER_YVU (0x00000003u)
166 
167 #define NVM_SURF_ATTR_COMPONENT_ORDER_YUYV (0x00000004u)
168 
169 #define NVM_SURF_ATTR_COMPONENT_ORDER_YVYU (0x00000005u)
170 
171 #define NVM_SURF_ATTR_COMPONENT_ORDER_VYUY (0x00000006u)
172 
173 #define NVM_SURF_ATTR_COMPONENT_ORDER_UYVY (0x00000007u)
174 
175 #define NVM_SURF_ATTR_COMPONENT_ORDER_XUYV (0x00000008u)
176 
177 #define NVM_SURF_ATTR_COMPONENT_ORDER_XYUV (0x00000009u)
178 
179 #define NVM_SURF_ATTR_COMPONENT_ORDER_VUYX (0x0000000Au)
180 
183 #define NVM_SURF_ATTR_COMPONENT_ORDER_ALPHA (0x00000011u)
184 
185 #define NVM_SURF_ATTR_COMPONENT_ORDER_RGBA (0x00000012u)
186 
187 #define NVM_SURF_ATTR_COMPONENT_ORDER_ARGB (0x00000013u)
188 
189 #define NVM_SURF_ATTR_COMPONENT_ORDER_BGRA (0x00000014u)
190 
191 #define NVM_SURF_ATTR_COMPONENT_ORDER_RG (0x00000015u)
192 
195 #define NVM_SURF_ATTR_COMPONENT_ORDER_RGGB (0x00000021u)
196 
197 #define NVM_SURF_ATTR_COMPONENT_ORDER_BGGR (0x00000022u)
198 
199 #define NVM_SURF_ATTR_COMPONENT_ORDER_GRBG (0x00000023u)
200 
201 #define NVM_SURF_ATTR_COMPONENT_ORDER_GBRG (0x00000024u)
202 
204 #define NVM_SURF_ATTR_COMPONENT_ORDER_RCCB (0x00000025u)
205 
206 #define NVM_SURF_ATTR_COMPONENT_ORDER_BCCR (0x00000026u)
207 
208 #define NVM_SURF_ATTR_COMPONENT_ORDER_CRBC (0x00000027u)
209 
210 #define NVM_SURF_ATTR_COMPONENT_ORDER_CBRC (0x00000028u)
211 
213 #define NVM_SURF_ATTR_COMPONENT_ORDER_RCCC (0x00000029u)
214 
215 #define NVM_SURF_ATTR_COMPONENT_ORDER_CCCR (0x0000002Au)
216 
217 #define NVM_SURF_ATTR_COMPONENT_ORDER_CRCC (0x0000002Bu)
218 
219 #define NVM_SURF_ATTR_COMPONENT_ORDER_CCRC (0x0000002Cu)
220 
222 #define NVM_SURF_ATTR_COMPONENT_ORDER_CCCC (0x0000002Du)
223 
227 typedef struct {
231  uint32_t value;
233 
237 #define NVM_SURF_FMT_DEFINE_ATTR(x) \
238  NvMediaSurfFormatAttr x[] = { \
239  { \
240  .type = NVM_SURF_ATTR_SURF_TYPE, \
241  .value = 0u, \
242  }, \
243  { \
244  .type = NVM_SURF_ATTR_LAYOUT, \
245  .value = 0u, \
246  }, \
247  { \
248  .type = NVM_SURF_ATTR_DATA_TYPE, \
249  .value = 0u, \
250  }, \
251  { \
252  .type = NVM_SURF_ATTR_MEMORY, \
253  .value = 0u, \
254  }, \
255  { \
256  .type = NVM_SURF_ATTR_SUB_SAMPLING_TYPE, \
257  .value = 0u, \
258  }, \
259  { \
260  .type = NVM_SURF_ATTR_BITS_PER_COMPONENT, \
261  .value = 0u, \
262  }, \
263  { \
264  .type = NVM_SURF_ATTR_COMPONENT_ORDER, \
265  .value = 0u, \
266  }, \
267  }; \
268 
269 
277 #define NVM_SURF_FMT_SET_ATTR_YUV(attr, order, samplingtype, memory, datatype, bpc, layout) \
278 { \
279  attr[0].type = NVM_SURF_ATTR_SURF_TYPE; \
280  attr[0].value = NVM_SURF_ATTR_SURF_TYPE_YUV; \
281  \
282  attr[1].type = NVM_SURF_ATTR_LAYOUT; \
283  attr[1].value = NVM_SURF_ATTR_LAYOUT_##layout; \
284  \
285  attr[2].type = NVM_SURF_ATTR_DATA_TYPE; \
286  attr[2].value = NVM_SURF_ATTR_DATA_TYPE_##datatype; \
287  \
288  attr[3].type = NVM_SURF_ATTR_MEMORY; \
289  attr[3].value = NVM_SURF_ATTR_MEMORY_##memory; \
290  \
291  attr[4].type = NVM_SURF_ATTR_SUB_SAMPLING_TYPE; \
292  attr[4].value = NVM_SURF_ATTR_SUB_SAMPLING_TYPE_##samplingtype; \
293  \
294  attr[5].type = NVM_SURF_ATTR_BITS_PER_COMPONENT; \
295  attr[5].value = NVM_SURF_ATTR_BITS_PER_COMPONENT_##bpc; \
296  \
297  attr[6].type = NVM_SURF_ATTR_COMPONENT_ORDER; \
298  attr[6].value = NVM_SURF_ATTR_COMPONENT_ORDER_##order; \
299 }
300 
306 #define NVM_SURF_FMT_SET_ATTR_RGBA(attr, order, datatype, bpc, layout) \
307 { \
308  attr[0].type = NVM_SURF_ATTR_SURF_TYPE; \
309  attr[0].value = NVM_SURF_ATTR_SURF_TYPE_RGBA; \
310  \
311  attr[1].type = NVM_SURF_ATTR_LAYOUT; \
312  attr[1].value = NVM_SURF_ATTR_LAYOUT_##layout; \
313  \
314  attr[2].type = NVM_SURF_ATTR_DATA_TYPE; \
315  attr[2].value = NVM_SURF_ATTR_DATA_TYPE_##datatype; \
316  \
317  attr[3].type = NVM_SURF_ATTR_MEMORY; \
318  attr[3].value = NVM_SURF_ATTR_MEMORY_PACKED; \
319  \
320  attr[4].type = NVM_SURF_ATTR_SUB_SAMPLING_TYPE; \
321  attr[4].value = NVM_SURF_ATTR_SUB_SAMPLING_TYPE_NONE; \
322  \
323  attr[5].type = NVM_SURF_ATTR_BITS_PER_COMPONENT; \
324  attr[5].value = NVM_SURF_ATTR_BITS_PER_COMPONENT_##bpc; \
325  \
326  attr[6].type = NVM_SURF_ATTR_COMPONENT_ORDER; \
327  attr[6].value = NVM_SURF_ATTR_COMPONENT_ORDER_##order; \
328 }
329 
334 #define NVM_SURF_FMT_SET_ATTR_RAW(attr, order, datatype, bpc, layout) \
335 { \
336  attr[0].type = NVM_SURF_ATTR_SURF_TYPE; \
337  attr[0].value = NVM_SURF_ATTR_SURF_TYPE_RAW; \
338  \
339  attr[1].type = NVM_SURF_ATTR_LAYOUT; \
340  attr[1].value = NVM_SURF_ATTR_LAYOUT_##layout; \
341  \
342  attr[2].type = NVM_SURF_ATTR_DATA_TYPE; \
343  attr[2].value = NVM_SURF_ATTR_DATA_TYPE_##datatype; \
344  \
345  attr[3].type = NVM_SURF_ATTR_MEMORY; \
346  attr[3].value = NVM_SURF_ATTR_MEMORY_PACKED; \
347  \
348  attr[4].type = NVM_SURF_ATTR_SUB_SAMPLING_TYPE; \
349  attr[4].value = NVM_SURF_ATTR_SUB_SAMPLING_TYPE_NONE; \
350  \
351  attr[5].type = NVM_SURF_ATTR_BITS_PER_COMPONENT; \
352  attr[5].value = NVM_SURF_ATTR_BITS_PER_COMPONENT_##bpc; \
353  \
354  attr[6].type = NVM_SURF_ATTR_COMPONENT_ORDER; \
355  attr[6].value = NVM_SURF_ATTR_COMPONENT_ORDER_##order; \
356 }
357 
369 typedef enum {
409 
413 #define NVM_SURF_ATTR_MIN_WIDTH (16U)
414 
415 #define NVM_SURF_ATTR_MAX_WIDTH (16384U)
416 
420 #define NVM_SURF_ATTR_MIN_HEIGHT (16U)
421 
422 #define NVM_SURF_ATTR_MAX_HEIGHT (16384U)
423 
427 #define NVM_SURF_ATTR_MIN_EMB_LINES_TOP (0U)
428 
429 #define NVM_SURF_ATTR_MAX_EMB_LINES_TOP (128U)
430 
434 #define NVM_SURF_ATTR_MIN_EMB_LINES_BOTTOM (0U)
435 
436 #define NVM_SURF_ATTR_MAX_EMB_LINES_BOTTOM (128U)
437 
441 #define NVM_SURF_ATTR_CPU_ACCESS_UNCACHED (0x00000001u)
442 
443 #define NVM_SURF_ATTR_CPU_ACCESS_CACHED (0x00000002u)
444 
445 #define NVM_SURF_ATTR_CPU_ACCESS_UNMAPPED (0x00000003u)
446 
450 #define NVM_SURF_ATTR_ALLOC_DEFAULT (0x00000000u)
451 
452 #define NVM_SURF_ATTR_ALLOC_ISOCHRONOUS (0x00000001u)
453 
454 #define NVM_SURF_ATTR_ALLOC_SECURED (0x00000002u)
455 
459 #define NVM_SURF_ATTR_ALLOC_DEFAULT (0x00000000u)
460 
461 #define NVM_SURF_ATTR_SCAN_PROGRESSIVE (0x00000001u)
462 
463 #if !defined(NV_IS_SAFETY) || (!NV_IS_SAFETY)
464 
468 #define NVM_SURF_ATTR_SCAN_INTERLACED (0x00000002u)
469 #endif
470 
476 #define NVM_SURF_ATTR_COLOR_STD_SRGB (0x00000001u)
477 
480 #define NVM_SURF_ATTR_COLOR_STD_REC601_SR (0x00000002u)
481 
484 #define NVM_SURF_ATTR_COLOR_STD_REC601_ER (0x00000003u)
485 
488 #define NVM_SURF_ATTR_COLOR_STD_REC709_SR (0x00000004u)
489 
492 #define NVM_SURF_ATTR_COLOR_STD_REC709_ER (0x00000005u)
493 
498 #define NVM_SURF_ATTR_COLOR_STD_REC2020_RGB (0x00000006u)
499 
504 #define NVM_SURF_ATTR_COLOR_STD_REC2020_SR (0x00000007u)
505 
510 #define NVM_SURF_ATTR_COLOR_STD_REC2020_ER (0x00000008u)
511 
516 #define NVM_SURF_ATTR_COLOR_STD_YcCbcCrc_SR (0x00000009u)
517 
522 #define NVM_SURF_ATTR_COLOR_STD_YcCbcCrc_ER (0x0000000Au)
523 
530 #define NVM_SURF_ATTR_COLOR_STD_SENSOR_RGBA (0x0000000Bu)
531 
535 #define NVM_SURF_ATTR_COLOR_STD_REC2020PQ_ER (0x0000000Cu)
536 
540 typedef struct {
544  uint32_t value;
546 
550 #define NvMediaSurfaceType uint32_t
551 
553 #define NvMediaSurfaceType_Unsupported (99999u)
554 
555 #if (NV_IS_SAFETY == 0)
556 
564 #define NvMediaSurfaceType_Video_420 (1000u)
565 #define NvMediaSurfaceType_Video_420_10bit (1001u)
566 #define NvMediaSurfaceType_Video_420_12bit (1002u)
567 
570 #define NvMediaSurfaceType_Video_422 (1003u)
571 #define NvMediaSurfaceType_Video_422_10bit (1004u)
572 #define NvMediaSurfaceType_Video_422_12bit (1005u)
573 
576 #define NvMediaSurfaceType_Video_444 (1006u)
577 #define NvMediaSurfaceType_Video_444_10bit (1007u)
578 #define NvMediaSurfaceType_Video_444_12bit (1008u)
579 
580 #define NvMediaSurfaceType_VideoCapture_422 (1009u)
581 
582 #define NvMediaSurfaceType_VideoCapture_YUYV_422 (1010u)
583 
584 #define NvMediaSurfaceType_R8G8B8A8 (1011u)
585 
588 #define NvMediaSurfaceType_R8G8B8A8_BottomOrigin (1012u)
589 
590 #define NvMediaSurfaceType_Image_Monochrome (1013u)
591 
592 #define NvMediaSurfaceType_Image_YUV_420 (1014u)
593 
594 #define NvMediaSurfaceType_Image_YUV_422 (1015u)
595 
596 #define NvMediaSurfaceType_Image_YUV_444 (1016u)
597 
598 #define NvMediaSurfaceType_Image_YUYV_422 (1017u)
599 
600 #define NvMediaSurfaceType_Image_RGBA (1018u)
601 
602 #define NvMediaSurfaceType_Image_RAW (1019u)
603 
604 #define NvMediaSurfaceType_Image_V16Y16U16X16 (1020u)
605 
606 #define NvMediaSurfaceType_Image_Y16 (1021u)
607 
608 #define NvMediaSurfaceType_Image_X2U10Y10V10 (1022u)
609 
610 #define NvMediaSurfaceType_Image_Y10U8V8_420 (1023u)
611 
612 #define NvMediaSurfaceType_Image_Y10 (1024u)
613 
614 #define NvMediaSurfaceType_A8 (1025u)
615 
617 #define NvMediaSurfaceType_YV12 NvMediaSurfaceType_Video_420
618 
619 #define NvMediaSurfaceType_YV16 NvMediaSurfaceType_Video_422
620 
621 #define NvMediaSurfaceType_YV24 NvMediaSurfaceType_Video_444
622 
623 #define NvMediaSurfaceType_YV16x2 NvMediaSurfaceType_VideoCapture_422
624 #endif
625 
641  const NvMediaSurfFormatAttr *attrs,
642  uint32_t numAttrs
643 );
644 
665  NvMediaSurfFormatAttr *attrs,
666  uint32_t numAttrs
667 );
668 
680  NvMediaVersion *version
681 );
682 
683 /*
684  * \defgroup history_nvmedia_surface History
685  * Provides change history for the NvMedia Surface API.
686  *
687  * \section history_nvmedia_surface Version History
688  *
689  * <b> Version 1.0 </b> March 1, 2017
690  * - Initial release
691  *
692  *
693  * <b> Version 1.1 </b> April 24, 2017
694  * - Added NVM_SURF_ATTR_COMPONENT_ORDER_XYUV and
695  * NVM_SURF_ATTR_COMPONENT_ORDER_RG component order flags
696  *
697  * <b> Version 1.2 </b> May 18, 2017
698  * - Added NVM_SURF_ATTR_COLOR_STD_TYPE and
699  * NVM_SURF_ATTR_COLOR_STD flags
700  *
701  * <b> Version 1.3 </b> June 08, 2017
702  * - Removed NvMediaSurfaceType_Image_NonColor_S16_XY and
703  * NvMediaSurfaceType_Image_NonColor_S16_X surface types
704  *
705  * <b> Version 1.4 </b> June 12, 2017
706  * - Added NVM_SURF_ATTR_COMPONENT_ORDER_VUYX flag
707  *
708  * <b> Version 1.5 </b> October 09, 2017
709  * - Added NVM_SURF_ATTR_COLOR_STD_SENSOR_RGBA and
710  * NVM_SURF_ATTR_COLOR_STD_REC2020PQ_ER flags
711  *
712  * <b> Version 1.6 </b> October 31, 2017
713  * - Added NVM_SURF_ATTR_DATA_TYPE_FLOATISP type
714  *
715  * <b> Version 1.7 </b> November 07, 2017
716  * - Added NVM_SURF_ATTR_BITS_PER_COMPONENT_20
717  *
718  * <b> Version 1.8 </b> June 04, 2018
719  * - Added NVM_SURF_ATTR_COMPONENT_ORDER_CCCC component order
720  *
721  * <b> Version 1.9 </b> July 10, 2018
722  * - Added NvMediaSurfaceGetVersion API
723  *
724  * <b> Version 1.10 </b> December 11, 2018
725  * - Fixed MISRA-C rule 10.4, 20.7 and 21.1 violations
726  * resulting from this header.
727  *
728  * <b> Version 1.11 </b> December 03, 2019
729  * - Updated the comments to deprecate old NvMediaSurfaceType_ macros
730  *
731  * <b> Version 1.12 </b> March 22, 2019
732  * - Fixed MISRA-C rule 8.13 violations
733  * resulting from this header.
734  *
735  * <b> Version 1.13 </b> November 27, 2019
736  * - Fixed MISRA-C rule 4.6 violations by changing unsigned int
737  * arguments and struct members to uint32_t type.
738  *
739  * <b> Version 1.14 </b> December 4, 2019
740  * - Fixed MISRA-C rule 2.5 violations by defining non-safety
741  * surface types under non-safety conditional compilation macro.
742  */
745 #ifdef __cplusplus
746 }; /* extern "C" */
747 #endif
748 
749 #endif /* NVMEDIA_SURFACE_H */
NVM_SURF_ATTR_DATA_TYPE
@ NVM_SURF_ATTR_DATA_TYPE
Specifies the surface data type.
Definition: nvmedia_surface.h:67
NvMediaSurfFormatAttr::value
uint32_t value
Holds surface format attribute value.
Definition: nvmedia_surface.h:231
NvMediaSurfAllocAttrType
NvMediaSurfAllocAttrType
Defines NvMedia Surface allocation attribute types.
Definition: nvmedia_surface.h:369
NvMediaSurfAllocAttr::type
NvMediaSurfAllocAttrType type
Holds the surface allocation attribute type.
Definition: nvmedia_surface.h:542
NvMediaSurfFormatAttr
Holds NvMedia Surface format attributes.
Definition: nvmedia_surface.h:227
NVM_SURF_FMT_ATTR_MAX
@ NVM_SURF_FMT_ATTR_MAX
Specifies the maximum number of surface format attributes.
Definition: nvmedia_surface.h:85
NVM_SURF_ATTR_SURF_TYPE
@ NVM_SURF_ATTR_SURF_TYPE
Specifies the surface type.
Definition: nvmedia_surface.h:59
NVM_SURF_ATTR_SCAN_TYPE
@ NVM_SURF_ATTR_SCAN_TYPE
Specifies the surface scan type.
Definition: nvmedia_surface.h:399
NVM_SURF_ATTR_WIDTH
@ NVM_SURF_ATTR_WIDTH
Specifies the surface width.
Definition: nvmedia_surface.h:372
NvMediaVersion
Holds NvMedia version information.
Definition: nvmedia_core.h:237
type
int const char int type
Definition: drm-nvdc-docs.h:1479
NVM_SURF_ATTR_PEER_VM_ID
@ NVM_SURF_ATTR_PEER_VM_ID
Specifies the peer VM ID in case of shared buffers.
Definition: nvmedia_surface.h:395
NVM_SURF_ATTR_EMB_LINES_BOTTOM
@ NVM_SURF_ATTR_EMB_LINES_BOTTOM
Specifies the embedded lines bottom.
Definition: nvmedia_surface.h:383
NVM_SURF_ALLOC_ATTR_MAX
@ NVM_SURF_ALLOC_ATTR_MAX
Specifies the maximum number of surface allocation attributes.
Definition: nvmedia_surface.h:407
NVM_SURF_ATTR_LAYOUT
@ NVM_SURF_ATTR_LAYOUT
Specifies the surface layout type.
Definition: nvmedia_surface.h:63
nvmedia_core.h
NVIDIA Media Interface: Core
NvMediaSurfaceFormatGetAttrs
NvMediaStatus NvMediaSurfaceFormatGetAttrs(NvMediaSurfaceType type, NvMediaSurfFormatAttr *attrs, uint32_t numAttrs)
Gets NvMediaSurfFormatAttr for the input surface type.
NvMediaSurfaceType
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
Definition: nvmedia_surface.h:550
NVM_SURF_ATTR_HEIGHT
@ NVM_SURF_ATTR_HEIGHT
Specifies the surface height (excluding embedded data lines).
Definition: nvmedia_surface.h:375
NvMediaSurfAllocAttr::value
uint32_t value
Holds the surface allocation attribute value.
Definition: nvmedia_surface.h:544
NvMediaSurfaceFormatGetType
NvMediaSurfaceType NvMediaSurfaceFormatGetType(const NvMediaSurfFormatAttr *attrs, uint32_t numAttrs)
Gets NvMediaSurfaceType for the input NvMediaSurfFormatAttr.
NvMediaSurfaceGetVersion
NvMediaStatus NvMediaSurfaceGetVersion(NvMediaVersion *version)
Gets the surface version information for the NvMediaSurface component.
NvMediaSurfFormatAttrType
NvMediaSurfFormatAttrType
Defines NvMedia Surface format attribute types.
Definition: nvmedia_surface.h:55
NVM_SURF_ATTR_ALLOC_TYPE
@ NVM_SURF_ATTR_ALLOC_TYPE
Specifies the allocation type.
Definition: nvmedia_surface.h:392
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:180
NVM_SURF_ATTR_CPU_ACCESS
@ NVM_SURF_ATTR_CPU_ACCESS
Specifies the CPU access to surface flags.
Definition: nvmedia_surface.h:388
NVM_SURF_ATTR_COLOR_STD_TYPE
@ NVM_SURF_ATTR_COLOR_STD_TYPE
Specifies the color standard type.
Definition: nvmedia_surface.h:405
NVM_SURF_ATTR_BITS_PER_COMPONENT
@ NVM_SURF_ATTR_BITS_PER_COMPONENT
Specifies bits per component.
Definition: nvmedia_surface.h:79
NvMediaSurfAllocAttr
Holds NvMedia Surface allocation attributes.
Definition: nvmedia_surface.h:540
NVM_SURF_ATTR_COMPONENT_ORDER
@ NVM_SURF_ATTR_COMPONENT_ORDER
Specifies the Pixel order.
Definition: nvmedia_surface.h:83
NVM_SURF_ATTR_SUB_SAMPLING_TYPE
@ NVM_SURF_ATTR_SUB_SAMPLING_TYPE
Specifies the surface sub sampling type.
Definition: nvmedia_surface.h:75
NVM_SURF_ATTR_EMB_LINES_TOP
@ NVM_SURF_ATTR_EMB_LINES_TOP
Specifies the embedded lines top.
Definition: nvmedia_surface.h:379
NVM_SURF_ATTR_MEMORY
@ NVM_SURF_ATTR_MEMORY
Specifies the surface memory type flags.
Definition: nvmedia_surface.h:71
NvMediaSurfFormatAttr::type
NvMediaSurfFormatAttrType type
Holds surface format attribute type.
Definition: nvmedia_surface.h:229