NVIDIA DRIVE OS Linux API Reference

5.1.0.2 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nvmedia_surface.h File Reference

Detailed Description

NVIDIA Media Interface: Surface Handling

Description: This file contains the NvMedia Surface Handling API.

Definition in file nvmedia_surface.h.

Go to the source code of this file.

Data Structures

struct  NvMediaSurfFormatAttr
 Holds NvMedia Surface format attributes. More...
 
struct  NvMediaSurfAllocAttr
 Holds NvMedia Surface allocation attributes. More...
 

Macros

#define NVMEDIA_SURFACE_VERSION_MAJOR   1
 Major Version number. More...
 
#define NVMEDIA_SURFACE_VERSION_MINOR   9
 Minor Version number. More...
 
#define NVM_SURF_ATTR_SURF_TYPE_YUV   0x00000001
 NVM_SURF_ATTR_SURF_TYPE flags. More...
 
#define NVM_SURF_ATTR_SURF_TYPE_RGBA   0x00000002
 RGBA surface type flag. More...
 
#define NVM_SURF_ATTR_SURF_TYPE_RAW   0x00000003
 RAW surface type flag. More...
 
#define NVM_SURF_ATTR_LAYOUT_BL   0x00000001
 NVM_SURF_ATTR_LAYOUT flags. More...
 
#define NVM_SURF_ATTR_LAYOUT_PL   0x00000002
 Pitch Linear (PL) surface layout flag. More...
 
#define NVM_SURF_ATTR_DATA_TYPE_UINT   0x00000001
 NVM_SURF_ATTR_DATA_TYPE flags. More...
 
#define NVM_SURF_ATTR_DATA_TYPE_INT   0x00000002
 Integer surface data type flag. More...
 
#define NVM_SURF_ATTR_DATA_TYPE_FLOAT   0x00000003
 Float surface data type flag. More...
 
#define NVM_SURF_ATTR_DATA_TYPE_FLOATISP   0x00000004
 FloatISP surface data type flag. More...
 
#define NVM_SURF_ATTR_MEMORY_PLANAR   0x00000001
 NVM_SURF_ATTR_MEMORY flags. More...
 
#define NVM_SURF_ATTR_MEMORY_SEMI_PLANAR   0x00000002
 Semi-Planar surface memory type flag. More...
 
#define NVM_SURF_ATTR_MEMORY_PACKED   0x00000003
 Packed surface memory type flag. More...
 
#define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_420   0x00000001
 NVM_SURF_ATTR_SUB_SAMPLING_TYPE flags for YUV surface types "R" indicates a transpose. More...
 
#define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_422   0x00000002
 4:2:2 sub-sampling type flag More...
 
#define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_444   0x00000003
 4:4:4 sub-sampling type flag More...
 
#define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_422R   0x00000004
 4:2:2 transposed sub-sampling type flag More...
 
#define NVM_SURF_ATTR_SUB_SAMPLING_TYPE_NONE   0x00000000
 sub-sampling type not applicable flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_8   0x00000001
 NVM_SURF_ATTR_BITS_PER_COMPONENT flags If a layout is not specified, it is a uniform layout across components. More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_10   0x00000002
 10-bit per component flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_12   0x00000003
 12-bit per component flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_14   0x00000004
 14-bit per component flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_16   0x00000005
 16-bit per component flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_32   0x00000006
 32-bit per component flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_16_8_8   0x00000007
 16:8:8 bits per component layout flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_10_8_8   0x00000008
 10:8:8 bits per component layout flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_2_10_10_10   0x00000009
 2:10:10:10 bits per component layout flag More...
 
#define NVM_SURF_ATTR_BITS_PER_COMPONENT_20   0x0000000A
 20-bit per component flag More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_LUMA   0x00000001
 NVM_SURF_ATTR_COMPONENT_ORDER flags for YUV surface type. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_YUV   0x00000002
 YUV component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_YVU   0x00000003
 YVU component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_YUYV   0x00000004
 YUYV component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_YVYU   0x00000005
 YVYU component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_VYUY   0x00000006
 VYUY component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_UYVY   0x00000007
 UYVY component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_XUYV   0x00000008
 XUYV component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_XYUV   0x00000009
 XYUV component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_VUYX   0x0000000A
 VUYX component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_ALPHA   0x00000011
 NVM_SURF_ATTR_PIXEL_ORDER flags for RGBA surface type. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_RGBA   0x00000012
 RGBA component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_ARGB   0x00000013
 ARGB component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_BGRA   0x00000014
 BGRA component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_RG   0x00000015
 RG component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_RGGB   0x00000021
 NVM_SURF_ATTR_PIXEL_ORDER flags for RAW surface type. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_BGGR   0x00000022
 BGGR component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_GRBG   0x00000023
 GRBG component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_GBRG   0x00000024
 GBRG component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_RCCB   0x00000025
 RCCB component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_BCCR   0x00000026
 BCCR component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_CRBC   0x00000027
 CRBC component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_CBRC   0x00000028
 CBRC component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_RCCC   0x00000029
 RCCC component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_CCCR   0x0000002A
 CCCR component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_CRCC   0x0000002B
 CRCC component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_CCRC   0x0000002C
 CCRC component order flag. More...
 
#define NVM_SURF_ATTR_COMPONENT_ORDER_CCCC   0x0000002D
 CCCC component order flag. More...
 
#define NVM_SURF_FMT_DEFINE_ATTR(x)
 A helper macro to define surface format attributes. More...
 
#define NVM_SURF_FMT_SET_ATTR_YUV(attr, order, samplingtype, memory, datatype, bpc, layout)
 A helper macro to set YUV surface format attributes. More...
 
#define NVM_SURF_FMT_SET_ATTR_RGBA(attr, order, datatype, bpc, layout)
 A helper macro to set RGBA surface format attributes. More...
 
#define NVM_SURF_FMT_SET_ATTR_RAW(attr, order, datatype, bpc, layout)
 A helper macro to set RAW surface format attributes. More...
 
#define NVM_SURF_ATTR_CPU_ACCESS_UNCACHED   0x00000001
 NVM_SURF_ATTR_CPU_ACCESS flags. More...
 
#define NVM_SURF_ATTR_CPU_ACCESS_CACHED   0x00000002
 Cached (mapped) access type flag. More...
 
#define NVM_SURF_ATTR_CPU_ACCESS_UNMAPPED   0x00000003
 Unmapped access type flag. More...
 
#define NVM_SURF_ATTR_ALLOC_ISOCHRONOUS   0x00000001
 NVM_SURF_ATTR_ALLOC_TYPE flags. More...
 
#define NVM_SURF_ATTR_ALLOC_SECURED   0x00000002
 Secured buffer allocation flag. More...
 
#define NVM_SURF_ATTR_SCAN_PROGRESSIVE   0x00000001
 NVM_SURF_ATTR_SCAN_TYPE flags. More...
 
#define NVM_SURF_ATTR_SCAN_INTERLACED   0x00000002
 Interlaced surface scan type flag. More...
 
#define NVM_SURF_ATTR_COLOR_STD_SRGB   0x00000001
 NVM_SURF_ATTR_COLOR_STD_TYPE flags. More...
 
#define NVM_SURF_ATTR_COLOR_STD_REC601_SR   0x00000002
 YCbCr Rec.601 (Studio Range) Color Std flag Range [Y:16-235 CbCr:16-240]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_REC601_ER   0x00000003
 YCbCr Rec.601 (Extended Range) Color Std flag Range [YCbCr:0-255]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_REC709_SR   0x00000004
 YCbCr Rec.709 (Studio Range) Color Std flag Range [Y:16-235 CbCr:16-240]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_REC709_ER   0x00000005
 YCbCr Rec.709 (Extended Range) Color Std flag Range [YCbCr:0-255]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_REC2020_RGB   0x00000006
 RGB Rec.2020 Color Std flag Range [RGB:0-1023 (10-bit), 0-4095 (12-bit), 0-65535(16-bit)]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_REC2020_SR   0x00000007
 YCbCr Rec.2020 (Studio Range) Color Std flag Range [Y:64-940 CbCr:64-960 (10-bit), Y:256-3760 CbCr:256-3840 (12-bit), Y:1024-60160 CbCr:1024-61440(16-bit)]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_REC2020_ER   0x00000008
 YCbCr Rec.2020 (Extended Range) Color Std flag Range [YCbCr:0-1023 (10-bit), 0-4095 (12-bit), 0-65535(16-bit)]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_YcCbcCrc_SR   0x00000009
 YcCbcCrc Rec.2020 (Studio Range) Color Std flag Range [Y:64-940 CbCr:64-960 (10-bit), Y:256-3760 CbCr:256-3840 (12-bit), Y:1024-60160 CbCr:1024-61440(16-bit)]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_YcCbcCrc_ER   0x0000000A
 YcCbcCrc Rec.2020 (Extended Range) Color Std flag Range [YCbCr:0-1023 (10-bit), 0-4095 (12-bit), 0-65535(16-bit)]. More...
 
#define NVM_SURF_ATTR_COLOR_STD_SENSOR_RGBA   0x0000000B
 Sensor RGBA Color Std flag This color std flag is used to represent demosaiced and white-balanced sensor bayer data in linear space. More...
 
#define NVM_SURF_ATTR_COLOR_STD_REC2020PQ_ER   0x0000000C
 YCbCr Rec.2020PQ (Extended Range) Color Std flag Range [YCbCr:0-65535 (16-bit)]. More...
 
#define NvMediaSurfaceType   uint32_t
 Defines the set of NvMedia surface types. More...
 
#define NvMediaSurfaceType_Video_420   1000
 Video surface for 4:2:0 format video decoders. More...
 
#define NvMediaSurfaceType_Video_420_10bit   1001
 
#define NvMediaSurfaceType_Video_420_12bit   1002
 
#define NvMediaSurfaceType_Video_422   1003
 Video surface for 4:2:2 format video decoders. More...
 
#define NvMediaSurfaceType_Video_422_10bit   1004
 
#define NvMediaSurfaceType_Video_422_12bit   1005
 
#define NvMediaSurfaceType_Video_444   1006
 Video surface for 4:4:4 format video decoders. More...
 
#define NvMediaSurfaceType_Video_444_10bit   1007
 
#define NvMediaSurfaceType_Video_444_12bit   1008
 
#define NvMediaSurfaceType_VideoCapture_422   1009
 Video capture surface for 4:2:2 format. More...
 
#define NvMediaSurfaceType_VideoCapture_YUYV_422   1010
 Video capture surface for YUYV format. More...
 
#define NvMediaSurfaceType_R8G8B8A8   1011
 R8G8B8A8 surface type. More...
 
#define NvMediaSurfaceType_R8G8B8A8_BottomOrigin   1012
 R8G8B8A8 surface type used for video rendering. More...
 
#define NvMediaSurfaceType_Image_Monochrome   1013
 Monochrome image. More...
 
#define NvMediaSurfaceType_Image_YUV_420   1014
 4:2:0 format image. More...
 
#define NvMediaSurfaceType_Image_YUV_422   1015
 4:2:2 format image. More...
 
#define NvMediaSurfaceType_Image_YUV_444   1016
 4:4:4 format image. More...
 
#define NvMediaSurfaceType_Image_YUYV_422   1017
 4:2:2 format packed image with YUYV component order. More...
 
#define NvMediaSurfaceType_Image_RGBA   1018
 RGBA image type. More...
 
#define NvMediaSurfaceType_Image_RAW   1019
 RAW image type. More...
 
#define NvMediaSurfaceType_Image_V16Y16U16X16   1020
 4:4:4:4 format packed image with VYUX component order. More...
 
#define NvMediaSurfaceType_Image_Y16   1021
 16-bit Y data image. More...
 
#define NvMediaSurfaceType_Image_X2U10Y10V10   1022
 4:4:4:4 format packed image with XUYV component order. More...
 
#define NvMediaSurfaceType_Image_Y10U8V8_420   1023
 4:2:0 semi-planar YUV More...
 
#define NvMediaSurfaceType_Image_Y10   1024
 10-bit Y data image. More...
 
#define NvMediaSurfaceType_A8   1025
 A8 alpha surface. More...
 
#define NvMediaSurfaceType_Unsupported   99999
 Unsupported types. More...
 
#define NvMediaSurfaceType_YV12   NvMediaSurfaceType_Video_420
 Obsolete 4:2:0 video surface type. More...
 
#define NvMediaSurfaceType_YV16   NvMediaSurfaceType_Video_422
 Obsolete 4:2:2 video surface type. More...
 
#define NvMediaSurfaceType_YV24   NvMediaSurfaceType_Video_444
 Obsolete 4:4:4 video surface type. More...
 
#define NvMediaSurfaceType_YV16x2   NvMediaSurfaceType_VideoCapture_422
 Obsolete 4:2:2 video capture surface type. More...
 

Enumerations

enum  NvMediaSurfFormatAttrType {
  NVM_SURF_ATTR_SURF_TYPE = 0,
  NVM_SURF_ATTR_LAYOUT,
  NVM_SURF_ATTR_DATA_TYPE,
  NVM_SURF_ATTR_MEMORY,
  NVM_SURF_ATTR_SUB_SAMPLING_TYPE,
  NVM_SURF_ATTR_BITS_PER_COMPONENT,
  NVM_SURF_ATTR_COMPONENT_ORDER,
  NVM_SURF_FMT_ATTR_MAX
}
 Defines NvMedia Surface format attribute types. More...
 
enum  NvMediaSurfAllocAttrType {
  NVM_SURF_ATTR_WIDTH,
  NVM_SURF_ATTR_HEIGHT,
  NVM_SURF_ATTR_EMB_LINES_TOP,
  NVM_SURF_ATTR_EMB_LINES_BOTTOM,
  NVM_SURF_ATTR_CPU_ACCESS,
  NVM_SURF_ATTR_ALLOC_TYPE,
  NVM_SURF_ATTR_PEER_VM_ID,
  NVM_SURF_ATTR_SCAN_TYPE,
  NVM_SURF_ATTR_COLOR_STD_TYPE,
  NVM_SURF_ALLOC_ATTR_MAX
}
 Defines NvMedia Surface Allocation attribute types. More...
 

Functions

NvMediaSurfaceType NvMediaSurfaceFormatGetType (NvMediaSurfFormatAttr *attrs, unsigned int numAttrs)
 Gets the NvMedia surface format type for the input surface format attributes. More...
 
NvMediaStatus NvMediaSurfaceFormatGetAttrs (NvMediaSurfaceType type, NvMediaSurfFormatAttr *attrs, unsigned int numAttrs)
 Gets NvMedia surface format attributes for the input surface type. More...
 
NvMediaStatus NvMediaSurfaceGetVersion (NvMediaVersion *version)
 Returns the version information for the NvMediaSurface component. More...