Collaboration diagram for VdpVideoSurface; Video Surface object:
![]() |
A VdpVideoSurface may be filled with:
VdpVideoSurface content may be accessed by:
VdpVideoSurfaces are not directly displayable. They must be converted into a displayable format using VdpVideoMixer objects.
See Video Mixer Usage for additional information.
Typedefs | |
typedef VdpStatus | VdpVideoSurfaceQueryCapabilities (VdpDevice device, VdpChromaType surface_chroma_type, VdpBool *is_supported, uint32_t *max_width, uint32_t *max_height) |
Query the implementation's VdpVideoSurface capabilities. | |
typedef VdpStatus | VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities (VdpDevice device, VdpChromaType surface_chroma_type, VdpYCbCrFormat bits_ycbcr_format, VdpBool *is_supported) |
Query the implementation's VdpVideoSurface GetBits/PutBits capabilities. | |
typedef uint32_t | VdpVideoSurface |
An opaque handle representing a VdpVideoSurface object. | |
typedef VdpStatus | VdpVideoSurfaceCreate (VdpDevice device, VdpChromaType chroma_type, uint32_t width, uint32_t height, VdpVideoSurface *surface) |
Create a VdpVideoSurface. | |
typedef VdpStatus | VdpVideoSurfaceDestroy (VdpVideoSurface surface) |
Destroy a VdpVideoSurface. | |
typedef VdpStatus | VdpVideoSurfaceGetParameters (VdpVideoSurface surface, VdpChromaType *chroma_type, uint32_t *width, uint32_t *height) |
Retrieve the parameters used to create a VdpVideoSurface. | |
typedef VdpStatus | VdpVideoSurfaceGetBitsYCbCr (VdpVideoSurface surface, VdpYCbCrFormat destination_ycbcr_format, void *const *destination_data, uint32_t const *destination_pitches) |
Copy image data from a VdpVideoSurface to application memory in a specified YCbCr format. | |
typedef VdpStatus | VdpVideoSurfacePutBitsYCbCr (VdpVideoSurface surface, VdpYCbCrFormat source_ycbcr_format, void const *const *source_data, uint32_t const *source_pitches) |
Copy image data from application memory in a specific YCbCr format to a VdpVideoSurface. |
|
An opaque handle representing a VdpVideoSurface object.
|
|
Create a VdpVideoSurface.
Note that certain widths/heights are impossible for specific values of chroma_type. For example, the definition of VDP_CHROMA_TYPE_420 implies that the width must be even, since each single chroma sample covers two luma samples horizontally. A similar argument applies to surface heights, although doubly so, since interlaced pictures must be supported; each field's height must itself be a multiple of 2. Hence the overall surface's height must be a multiple of 4. Similar rules apply to other chroma_type values. Implementations may also impose additional restrictions on the surface sizes they support, potentially requiring additional rounding of actual surface sizes. In most cases, this is not an issue, since:
However, other APIs such as VdpVideoSurfaceGetBitsYCbCr and VdpVideoSurfacePutBitsYCbCr do not allow a sub-region to be specified, and always operate on surface size that was actually allocated, rather than the surface size that was requested. In this case, applications need to be aware of the actual surface size, in order to allocate appropriately sized buffers for the get-/put-bits operations. For this reason, applications may need to call VdpVideoSurfaceGetParameters after creation, in order to retrieve the actual surface size. |
|
Destroy a VdpVideoSurface.
|
|
Copy image data from a VdpVideoSurface to application memory in a specified YCbCr format.
|
|
Retrieve the parameters used to create a VdpVideoSurface.
|
|
Copy image data from application memory in a specific YCbCr format to a VdpVideoSurface.
|
|
Query the implementation's VdpVideoSurface capabilities.
|
|
Query the implementation's VdpVideoSurface GetBits/PutBits capabilities.
|