VDPAU
|
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. | |
#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_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_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_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_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_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 |
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_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_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_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_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_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 |
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_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_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_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_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_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_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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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 uint32_t VdpChromaType |
The set of all chroma formats for VdpVideoSurfaces.
typedef uint32_t VdpIndexedFormat |
The set of all known indexed surface formats.
typedef uint32_t VdpRGBAFormat |
The set of all known RGB surface formats.
typedef uint32_t VdpYCbCrFormat |
The set of all known YCbCr surface formats.