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 (1u) |
| Major Version number. More... | |
| #define | NVMEDIA_SURFACE_VERSION_MINOR (14u) |
| Minor Version number. More... | |
| #define | NVM_SURF_ATTR_SURF_TYPE_YUV (0x00000001u) |
| NVM_SURF_ATTR_SURF_TYPE flags. More... | |
| #define | NVM_SURF_ATTR_SURF_TYPE_RGBA (0x00000002u) |
| RGBA surface type flag. More... | |
| #define | NVM_SURF_ATTR_SURF_TYPE_RAW (0x00000003u) |
| RAW surface type flag. More... | |
| #define | NVM_SURF_ATTR_LAYOUT_BL (0x00000001u) |
| NVM_SURF_ATTR_LAYOUT flags. More... | |
| #define | NVM_SURF_ATTR_LAYOUT_PL (0x00000002u) |
| Pitch Linear (PL) surface layout flag. More... | |
| #define | NVM_SURF_ATTR_DATA_TYPE_UINT (0x00000001u) |
| NVM_SURF_ATTR_DATA_TYPE flags. More... | |
| #define | NVM_SURF_ATTR_DATA_TYPE_INT (0x00000002u) |
| Integer surface data type flag. More... | |
| #define | NVM_SURF_ATTR_DATA_TYPE_FLOAT (0x00000003u) |
| Float surface data type flag. More... | |
| #define | NVM_SURF_ATTR_DATA_TYPE_FLOATISP (0x00000004u) |
| FloatISP surface data type flag. More... | |
| #define | NVM_SURF_ATTR_MEMORY_PLANAR (0x00000001u) |
| NVM_SURF_ATTR_MEMORY flags. More... | |
| #define | NVM_SURF_ATTR_MEMORY_SEMI_PLANAR (0x00000002u) |
| Semi-Planar surface memory type flag. More... | |
| #define | NVM_SURF_ATTR_MEMORY_PACKED (0x00000003u) |
| Packed surface memory type flag. More... | |
| #define | NVM_SURF_ATTR_SUB_SAMPLING_TYPE_420 (0x00000001u) |
| NVM_SURF_ATTR_SUB_SAMPLING_TYPE flags for YUV surface types "R" indicates a transpose. More... | |
| #define | NVM_SURF_ATTR_SUB_SAMPLING_TYPE_422 (0x00000002u) |
| 4:2:2 sub-sampling type flag. More... | |
| #define | NVM_SURF_ATTR_SUB_SAMPLING_TYPE_444 (0x00000003u) |
| 4:4:4 sub-sampling type flag. More... | |
| #define | NVM_SURF_ATTR_SUB_SAMPLING_TYPE_422R (0x00000004u) |
| 4:2:2 transposed sub-sampling type flag. More... | |
| #define | NVM_SURF_ATTR_SUB_SAMPLING_TYPE_NONE (0x00000000u) |
| sub-sampling type not applicable flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_8 (0x00000001u) |
| NVM_SURF_ATTR_BITS_PER_COMPONENT flags. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_10 (0x00000002u) |
| 10-bit per component flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_12 (0x00000003u) |
| 12-bit per component flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_14 (0x00000004u) |
| 14-bit per component flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_16 (0x00000005u) |
| 16-bit per component flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_32 (0x00000006u) |
| 32-bit per component flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_16_8_8 (0x00000007u) |
| 16:8:8 bits per component layout flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_10_8_8 (0x00000008u) |
| 10:8:8 bits per component layout flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_LAYOUT_2_10_10_10 (0x00000009u) |
| 2:10:10:10 bits per component layout flag. More... | |
| #define | NVM_SURF_ATTR_BITS_PER_COMPONENT_20 (0x0000000Au) |
| 20-bit per component flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_LUMA (0x00000001u) |
| NVM_SURF_ATTR_COMPONENT_ORDER flags for YUV surface type. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_YUV (0x00000002u) |
| YUV component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_YVU (0x00000003u) |
| YVU component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_YUYV (0x00000004u) |
| YUYV component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_YVYU (0x00000005u) |
| YVYU component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_VYUY (0x00000006u) |
| VYUY component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_UYVY (0x00000007u) |
| UYVY component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_XUYV (0x00000008u) |
| XUYV component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_XYUV (0x00000009u) |
| XYUV component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_VUYX (0x0000000Au) |
| VUYX component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_ALPHA (0x00000011u) |
| NVM_SURF_ATTR_PIXEL_ORDER flags for RGBA surface type. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_RGBA (0x00000012u) |
| RGBA component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_ARGB (0x00000013u) |
| ARGB component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_BGRA (0x00000014u) |
| BGRA component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_RG (0x00000015u) |
| RG component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_RGGB (0x00000021u) |
| NVM_SURF_ATTR_PIXEL_ORDER flags for RAW surface type. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_BGGR (0x00000022u) |
| BGGR component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_GRBG (0x00000023u) |
| GRBG component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_GBRG (0x00000024u) |
| GBRG component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_RCCB (0x00000025u) |
| RCCB component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_BCCR (0x00000026u) |
| BCCR component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_CRBC (0x00000027u) |
| CRBC component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_CBRC (0x00000028u) |
| CBRC component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_RCCC (0x00000029u) |
| RCCC component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_CCCR (0x0000002Au) |
| CCCR component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_CRCC (0x0000002Bu) |
| CRCC component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_CCRC (0x0000002Cu) |
| CCRC component order flag. More... | |
| #define | NVM_SURF_ATTR_COMPONENT_ORDER_CCCC (0x0000002Du) |
| 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_MIN_WIDTH (16U) |
| NVM_SURF_ATTR_WIDTH flags. More... | |
| #define | NVM_SURF_ATTR_MAX_WIDTH (16384U) |
| Maximum width of NvMedia Surface . More... | |
| #define | NVM_SURF_ATTR_MIN_HEIGHT (16U) |
| NVM_SURF_ATTR_HEIGHT flags. More... | |
| #define | NVM_SURF_ATTR_MAX_HEIGHT (16384U) |
| Maximum height of NvMedia Surface . More... | |
| #define | NVM_SURF_ATTR_MIN_EMB_LINES_TOP (0U) |
| NVM_SURF_ATTR_EMB_LINES_TOP flags. More... | |
| #define | NVM_SURF_ATTR_MAX_EMB_LINES_TOP (128U) |
| Maximum Top Embedded Data Lines. More... | |
| #define | NVM_SURF_ATTR_MIN_EMB_LINES_BOTTOM (0U) |
| NVM_SURF_ATTR_EMB_LINES_BOTTOM flags. More... | |
| #define | NVM_SURF_ATTR_MAX_EMB_LINES_BOTTOM (128U) |
| Maximum Bottom Embedded Data Lines. More... | |
| #define | NVM_SURF_ATTR_CPU_ACCESS_UNCACHED (0x00000001u) |
| NVM_SURF_ATTR_CPU_ACCESS flags. More... | |
| #define | NVM_SURF_ATTR_CPU_ACCESS_CACHED (0x00000002u) |
| Cached (mapped) access type flag. More... | |
| #define | NVM_SURF_ATTR_CPU_ACCESS_UNMAPPED (0x00000003u) |
| Unmapped access type flag. More... | |
| #define | NVM_SURF_ATTR_ALLOC_DEFAULT (0x00000000u) |
| NVM_SURF_ATTR_ALLOC_TYPE flags. More... | |
| #define | NVM_SURF_ATTR_ALLOC_ISOCHRONOUS (0x00000001u) |
| Isochronous buffer allocation flag. More... | |
| #define | NVM_SURF_ATTR_ALLOC_SECURED (0x00000002u) |
| Secured buffer allocation flag. More... | |
| #define | NVM_SURF_ATTR_ALLOC_DEFAULT (0x00000000u) |
| NVM_SURF_ATTR_ALLOC_TYPE flags. More... | |
| #define | NVM_SURF_ATTR_SCAN_PROGRESSIVE (0x00000001u) |
| Progressive surface scan type flag. More... | |
| #define | NVM_SURF_ATTR_SCAN_INTERLACED (0x00000002u) |
| Interlaced surface scan type flag. More... | |
| #define | NVM_SURF_ATTR_COLOR_STD_SRGB (0x00000001u) |
| NVM_SURF_ATTR_COLOR_STD_TYPE flags. More... | |
| #define | NVM_SURF_ATTR_COLOR_STD_REC601_SR (0x00000002u) |
| YCbCr Rec.601 (Studio Range) Color Std flag Range [Y:16-235 CbCr:16-240]. More... | |
| #define | NVM_SURF_ATTR_COLOR_STD_REC601_ER (0x00000003u) |
| YCbCr Rec.601 (Extended Range) Color Std flag Range [YCbCr:0-255]. More... | |
| #define | NVM_SURF_ATTR_COLOR_STD_REC709_SR (0x00000004u) |
| YCbCr Rec.709 (Studio Range) Color Std flag Range [Y:16-235 CbCr:16-240]. More... | |
| #define | NVM_SURF_ATTR_COLOR_STD_REC709_ER (0x00000005u) |
| YCbCr Rec.709 (Extended Range) Color Std flag Range [YCbCr:0-255]. More... | |
| #define | NVM_SURF_ATTR_COLOR_STD_REC2020_RGB (0x00000006u) |
| 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 (0x00000007u) |
| 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 (0x00000008u) |
| 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 (0x00000009u) |
| 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 (0x0000000Au) |
| 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 (0x0000000Bu) |
| Sensor RGBA Color Std flag. More... | |
| #define | NVM_SURF_ATTR_COLOR_STD_REC2020PQ_ER (0x0000000Cu) |
| 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_Unsupported (99999u) |
| Unsupported types. More... | |
| #define | NvMediaSurfaceType_Video_420 (1000u) |
| Obsolete Video surface for 4:2:0 format video decoders. More... | |
| #define | NvMediaSurfaceType_Video_420_10bit (1001u) |
| #define | NvMediaSurfaceType_Video_420_12bit (1002u) |
| #define | NvMediaSurfaceType_Video_422 (1003u) |
| Obsolete Video surface for 4:2:2 format video decoders. More... | |
| #define | NvMediaSurfaceType_Video_422_10bit (1004u) |
| #define | NvMediaSurfaceType_Video_422_12bit (1005u) |
| #define | NvMediaSurfaceType_Video_444 (1006u) |
| Obsolete Video surface for 4:4:4 format video decoders. More... | |
| #define | NvMediaSurfaceType_Video_444_10bit (1007u) |
| #define | NvMediaSurfaceType_Video_444_12bit (1008u) |
| #define | NvMediaSurfaceType_VideoCapture_422 (1009u) |
| Obsolete Video capture surface for 4:2:2 format. More... | |
| #define | NvMediaSurfaceType_VideoCapture_YUYV_422 (1010u) |
| Obsolete Video capture surface for YUYV format. More... | |
| #define | NvMediaSurfaceType_R8G8B8A8 (1011u) |
| Obsolete R8G8B8A8 surface type. More... | |
| #define | NvMediaSurfaceType_R8G8B8A8_BottomOrigin (1012u) |
| Obsolete R8G8B8A8 surface type used for video rendering. More... | |
| #define | NvMediaSurfaceType_Image_Monochrome (1013u) |
| Obsolete Monochrome image. More... | |
| #define | NvMediaSurfaceType_Image_YUV_420 (1014u) |
| Obsolete 4:2:0 format image. More... | |
| #define | NvMediaSurfaceType_Image_YUV_422 (1015u) |
| Obsolete 4:2:2 format image. More... | |
| #define | NvMediaSurfaceType_Image_YUV_444 (1016u) |
| Obsolete 4:4:4 format image. More... | |
| #define | NvMediaSurfaceType_Image_YUYV_422 (1017u) |
| Obsolete 4:2:2 format packed image with YUYV component order. More... | |
| #define | NvMediaSurfaceType_Image_RGBA (1018u) |
| Obsolete RGBA image type. More... | |
| #define | NvMediaSurfaceType_Image_RAW (1019u) |
| Obsolete RAW image type. More... | |
| #define | NvMediaSurfaceType_Image_V16Y16U16X16 (1020u) |
| Obsolete 4:4:4:4 format packed image with VYUX component order. More... | |
| #define | NvMediaSurfaceType_Image_Y16 (1021u) |
| Obsolete 16-bit Y data image. More... | |
| #define | NvMediaSurfaceType_Image_X2U10Y10V10 (1022u) |
| Obsolete 4:4:4:4 format packed image with XUYV component order. More... | |
| #define | NvMediaSurfaceType_Image_Y10U8V8_420 (1023u) |
| Obsolete 4:2:0 semi-planar YUV. More... | |
| #define | NvMediaSurfaceType_Image_Y10 (1024u) |
| Obsolete 10-bit Y data image. More... | |
| #define | NvMediaSurfaceType_A8 (1025u) |
| Obsolete A8 alpha surface. 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 = 0u, 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 = 0u, 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 (const NvMediaSurfFormatAttr *attrs, uint32_t numAttrs) |
| Gets NvMediaSurfaceType for the input NvMediaSurfFormatAttr. More... | |
| NvMediaStatus | NvMediaSurfaceFormatGetAttrs (NvMediaSurfaceType type, NvMediaSurfFormatAttr *attrs, uint32_t numAttrs) |
| Gets NvMediaSurfFormatAttr for the input surface type. More... | |
| NvMediaStatus | NvMediaSurfaceGetVersion (NvMediaVersion *version) |
| Gets the surface version information for the NvMediaSurface component. More... | |