VDPAU
Data Structures | Macros | Typedefs
Miscellaneous Types
Collaboration diagram for Miscellaneous Types:

Data Structures

struct  VdpPoint
 A location within a surface. More...
 
struct  VdpRect
 A rectangular region of a surface. More...
 
struct  VdpColor
 

Macros

#define VDP_INVALID_HANDLE   0xffffffffU
 An invalid object handle value.
 
#define VDP_CHROMA_TYPE_420
 4:2:0 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field(NV12/NV24) as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.
 
#define VDP_CHROMA_TYPE_422
 4:2:2 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field(NV12/NV24) as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.
 
#define VDP_CHROMA_TYPE_444
 4:4:4 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field(NV12/NV24) as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.
 
#define VDP_CHROMA_TYPE_420_FIELD
 4:2:0 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_422_FIELD
 4:2:2 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_444_FIELD
 4:4:4 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_420_FRAME
 4:2:0 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_422_FRAME
 4:2:2 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_444_FRAME
 4:4:4 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_420_16
 4:2:0 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.
 
#define VDP_CHROMA_TYPE_422_16
 4:2:2 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.
 
#define VDP_CHROMA_TYPE_444_16
 4:4:4 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.
 
#define VDP_CHROMA_TYPE_420_FIELD_16
 4:2:0 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_422_FIELD_16
 4:2:2 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_444_FIELD_16
 4:4:4 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_420_FRAME_16
 4:2:0 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_422_FRAME_16
 4:2:2 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_CHROMA_TYPE_444_FRAME_16
 4:4:4 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API
 
#define VDP_YCBCR_FORMAT_NV12
 The "NV12" YCbCr surface format.
 
#define VDP_YCBCR_FORMAT_YV12
 The "YV12" YCbCr surface format.
 
#define VDP_YCBCR_FORMAT_UYVY
 The "UYVY" YCbCr surface format.
 
#define VDP_YCBCR_FORMAT_YUYV
 The "YUYV" YCbCr surface format.
 
#define VDP_YCBCR_FORMAT_Y8U8V8A8
 A packed YCbCr format.
 
#define VDP_YCBCR_FORMAT_V8U8Y8A8
 A packed YCbCr format.
 
#define VDP_YCBCR_FORMAT_Y_UV_444
 The "Y_UV_444" YCbCr surface format.
 
#define VDP_YCBCR_FORMAT_Y_U_V_444
 The "Y_U_V_444" YCbCr surface format.
 
#define VDP_YCBCR_FORMAT_P010
 The P010 surface format.
 
#define VDP_YCBCR_FORMAT_P016
 The P016 surface format.
 
#define VDP_YCBCR_FORMAT_Y_U_V_444_16
 The "Y_U_V_444_16" YCbCr surface format.
 
#define VDP_RGBA_FORMAT_B8G8R8A8
 A packed RGB format.
 
#define VDP_RGBA_FORMAT_R8G8B8A8
 A packed RGB format.
 
#define VDP_RGBA_FORMAT_R10G10B10A2
 A packed RGB format.
 
#define VDP_RGBA_FORMAT_B10G10R10A2
 A packed RGB format.
 
#define VDP_RGBA_FORMAT_A8
 An alpha-only surface format.
 
#define VDP_INDEXED_FORMAT_A4I4
 A 4-bit indexed format, with alpha.
 
#define VDP_INDEXED_FORMAT_I4A4
 A 4-bit indexed format, with alpha.
 
#define VDP_INDEXED_FORMAT_A8I8
 A 8-bit indexed format, with alpha.
 
#define VDP_INDEXED_FORMAT_I8A8
 A 8-bit indexed format, with alpha.
 

Typedefs

typedef uint32_t VdpChromaType
 The set of all chroma formats for VdpVideoSurfaces.
 
typedef uint32_t VdpYCbCrFormat
 The set of all known YCbCr surface formats.
 
typedef uint32_t VdpRGBAFormat
 The set of all known RGB surface formats.
 
typedef uint32_t VdpIndexedFormat
 The set of all known indexed surface formats.
 

Detailed Description

Macro Definition Documentation

◆ VDP_CHROMA_TYPE_420

#define VDP_CHROMA_TYPE_420

4:2:0 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field(NV12/NV24) as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.

◆ VDP_CHROMA_TYPE_420_16

#define VDP_CHROMA_TYPE_420_16

4:2:0 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.

◆ VDP_CHROMA_TYPE_420_FIELD

#define VDP_CHROMA_TYPE_420_FIELD

4:2:0 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_420_FIELD_16

#define VDP_CHROMA_TYPE_420_FIELD_16

4:2:0 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_420_FRAME

#define VDP_CHROMA_TYPE_420_FRAME

4:2:0 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_420_FRAME_16

#define VDP_CHROMA_TYPE_420_FRAME_16

4:2:0 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_422

#define VDP_CHROMA_TYPE_422

4:2:2 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field(NV12/NV24) as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.

◆ VDP_CHROMA_TYPE_422_16

#define VDP_CHROMA_TYPE_422_16

4:2:2 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.

◆ VDP_CHROMA_TYPE_422_FIELD

#define VDP_CHROMA_TYPE_422_FIELD

4:2:2 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_422_FIELD_16

#define VDP_CHROMA_TYPE_422_FIELD_16

4:2:2 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_422_FRAME

#define VDP_CHROMA_TYPE_422_FRAME

4:2:2 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_422_FRAME_16

#define VDP_CHROMA_TYPE_422_FRAME_16

4:2:2 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_444

#define VDP_CHROMA_TYPE_444

4:4:4 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field(NV12/NV24) as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.

◆ VDP_CHROMA_TYPE_444_16

#define VDP_CHROMA_TYPE_444_16

4:4:4 chroma format. Undefined field/frame based Video surfaces allocated with this chroma type have undefined field/frame structure. The implementation is free to internally morph the surface between frame/field as required by VdpVideoDecoder operation. Interop with OpenGL allows registration of these surfaces for either field- or frame-based interop. But, an implicit field/frame structure conversion may be performed.

◆ VDP_CHROMA_TYPE_444_FIELD

#define VDP_CHROMA_TYPE_444_FIELD

4:4:4 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_444_FIELD_16

#define VDP_CHROMA_TYPE_444_FIELD_16

4:4:4 chroma format. Field based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_444_FRAME

#define VDP_CHROMA_TYPE_444_FRAME

4:4:4 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_CHROMA_TYPE_444_FRAME_16

#define VDP_CHROMA_TYPE_444_FRAME_16

4:4:4 chroma format. Frame based. Video surfaces allocated with this chroma type can only be interoped with OpenGL if the matching field/frame structure is specified in the OpenGL API

◆ VDP_INDEXED_FORMAT_A4I4

#define VDP_INDEXED_FORMAT_A4I4

A 4-bit indexed format, with alpha.

This format has a single plane.

This plane is an array of byte-sized components. Within each byte, bits [7:4] contain I (index), and bits [3:0] contain A.

Applications should access this data via a uint8_t pointer.

◆ VDP_INDEXED_FORMAT_A8I8

#define VDP_INDEXED_FORMAT_A8I8

A 8-bit indexed format, with alpha.

This format has a single plane.

This plane is an array of interleaved byte-sized A and I (index) components, in the order A, I, A, I.

Applications should access this data via a uint8_t pointer.

◆ VDP_INDEXED_FORMAT_I4A4

#define VDP_INDEXED_FORMAT_I4A4

A 4-bit indexed format, with alpha.

This format has a single plane.

This plane is an array of byte-sized components. Within each byte, bits [7:4] contain A, and bits [3:0] contain I (index).

Applications should access this data via a uint8_t pointer.

◆ VDP_INDEXED_FORMAT_I8A8

#define VDP_INDEXED_FORMAT_I8A8

A 8-bit indexed format, with alpha.

This format has a single plane.

This plane is an array of interleaved byte-sized A and I (index) components, in the order I, A, I, A.

Applications should access this data via a uint8_t pointer.

◆ VDP_INVALID_HANDLE

#define VDP_INVALID_HANDLE   0xffffffffU

An invalid object handle value.

This value may be used to represent an invalid, or non-existent, object (VdpDevice, VdpVideoSurface, etc.)

Note that most APIs require valid object handles in all cases, and will fail when presented with this value.

◆ VDP_RGBA_FORMAT_A8

#define VDP_RGBA_FORMAT_A8

An alpha-only surface format.

This format has a single plane.

This plane is an array of byte-sized components.

Applications should access this data via a uint8_t pointer.

◆ VDP_RGBA_FORMAT_B10G10R10A2

#define VDP_RGBA_FORMAT_B10G10R10A2

A packed RGB format.

This format has a single plane.

This plane is an array packed 32-bit pixel data. Within each 32-bit pixel, bits [31:30] contain A, bits [29:20] contain R, bits [19:10] contain G, and bits [9:0] contain B.

Applications should access this data via a uint32_t pointer.

◆ VDP_RGBA_FORMAT_B8G8R8A8

#define VDP_RGBA_FORMAT_B8G8R8A8

A packed RGB format.

This format has a single plane.

This plane is an array packed 32-bit pixel data. Within each 32-bit pixel, bits [31:24] contain A, bits [23:16] contain R, bits [15:8] contain G, and bits [7:0] contain B.

Applications should access this data via a uint32_t pointer.

◆ VDP_RGBA_FORMAT_R10G10B10A2

#define VDP_RGBA_FORMAT_R10G10B10A2

A packed RGB format.

This format has a single plane.

This plane is an array packed 32-bit pixel data. Within each 32-bit pixel, bits [31:30] contain A, bits [29:20] contain B, bits [19:10] contain G, and bits [9:0] contain R.

Applications should access this data via a uint32_t pointer.

◆ VDP_RGBA_FORMAT_R8G8B8A8

#define VDP_RGBA_FORMAT_R8G8B8A8

A packed RGB format.

This format has a single plane.

This plane is an array packed 32-bit pixel data. Within each 32-bit pixel, bits [31:24] contain A, bits [23:16] contain B, bits [15:8] contain G, and bits [7:0] contain R.

Applications should access this data via a uint32_t pointer.

◆ VDP_YCBCR_FORMAT_NV12

#define VDP_YCBCR_FORMAT_NV12

The "NV12" YCbCr surface format.

This format has a two planes, a Y plane and a UV plane.

The Y plane is an array of byte-sized Y components. Applications should access this data via a uint8_t pointer.

The UV plane is an array of interleaved byte-sized U and V components, in the order U, V, U, V. Applications should access this data via a uint8_t pointer.

◆ VDP_YCBCR_FORMAT_P010

#define VDP_YCBCR_FORMAT_P010

The P010 surface format.

This format has two planes, a Y plane and a UV plane.

The Y plane is an array of two byte sized Y components. Applications should access this data via a uint16_t pointer.

The UV plane is an array of interleaved two byte sized U and V components, in the order U, V, U, V. Applications should access this data via a uint8_t pointer.

Note that the P010 surface format has an identical memory layout as the P016 surface format, with bits 0 through 5 set to zero.

◆ VDP_YCBCR_FORMAT_P016

#define VDP_YCBCR_FORMAT_P016

The P016 surface format.

This format has two planes, a Y plane and a UV plane.

The Y plane is an array of two byte sized Y components. Applications should access this data via a uint16_t pointer.

The UV plane is an array of interleaved two byte sized U and V components, in the order U, V, U, V. Applications should access this data via a uint8_t pointer.

◆ VDP_YCBCR_FORMAT_UYVY

#define VDP_YCBCR_FORMAT_UYVY

The "UYVY" YCbCr surface format.

This format may also be known as Y422, UYNV, HDYC.

This format has a single plane.

This plane is an array of interleaved byte-sized Y, U, and V components, in the order U, Y, V, Y, U, Y, V, Y.

Applications should access this data via a uint8_t pointer.

◆ VDP_YCBCR_FORMAT_V8U8Y8A8

#define VDP_YCBCR_FORMAT_V8U8Y8A8

A packed YCbCr format.

This format has a single plane.

This plane is an array packed 32-bit pixel data. Within each 32-bit pixel, bits [31:24] contain A, bits [23:16] contain Y, bits [15:8] contain U, and bits [7:0] contain V.

Applications should access this data via a uint32_t pointer.

◆ VDP_YCBCR_FORMAT_Y8U8V8A8

#define VDP_YCBCR_FORMAT_Y8U8V8A8

A packed YCbCr format.

This format has a single plane.

This plane is an array packed 32-bit pixel data. Within each 32-bit pixel, bits [31:24] contain A, bits [23:16] contain V, bits [15:8] contain U, and bits [7:0] contain Y.

Applications should access this data via a uint32_t pointer.

◆ VDP_YCBCR_FORMAT_Y_U_V_444

#define VDP_YCBCR_FORMAT_Y_U_V_444

The "Y_U_V_444" YCbCr surface format.

This format has three planes, a Y plane, a V plane, and a U plane.

Each of the planes is an array of byte-sized components.

Applications should access this data via a uint8_t pointer.

◆ VDP_YCBCR_FORMAT_Y_U_V_444_16

#define VDP_YCBCR_FORMAT_Y_U_V_444_16

The "Y_U_V_444_16" YCbCr surface format.

This format has three planes, a Y plane, a V plane, and a U plane.

Each of the planes is an array of two byte-sized components.

Applications should access this data via a uint16_t pointer.

◆ VDP_YCBCR_FORMAT_Y_UV_444

#define VDP_YCBCR_FORMAT_Y_UV_444

The "Y_UV_444" YCbCr surface format.

This format has two planes, a Y plane and a UV plane.

The Y plane is an array of byte-sized Y components. Applications should access this data via a uint8_t pointer.

The UV plane is an array of interleaved byte-sized U and V components, in the order U, V, U, V. Applications should access this data via a uint8_t pointer.

◆ VDP_YCBCR_FORMAT_YUYV

#define VDP_YCBCR_FORMAT_YUYV

The "YUYV" YCbCr surface format.

This format may also be known as YUY2, YUNV, V422.

This format has a single plane.

This plane is an array of interleaved byte-sized Y, U, and V components, in the order Y, U, Y, V, Y, U, Y, V.

Applications should access this data via a uint8_t pointer.

◆ VDP_YCBCR_FORMAT_YV12

#define VDP_YCBCR_FORMAT_YV12

The "YV12" YCbCr surface format.

This format has a three planes, a Y plane, a V plane, and a U plane.

Each of the planes is an array of byte-sized components.

Applications should access this data via a uint8_t pointer.

Typedef Documentation

◆ VdpChromaType

typedef uint32_t VdpChromaType

The set of all chroma formats for VdpVideoSurfaces.

◆ VdpIndexedFormat

typedef uint32_t VdpIndexedFormat

The set of all known indexed surface formats.

◆ VdpRGBAFormat

typedef uint32_t VdpRGBAFormat

The set of all known RGB surface formats.

◆ VdpYCbCrFormat

typedef uint32_t VdpYCbCrFormat

The set of all known YCbCr surface formats.