VDPAU
|
Data Structures | |
struct | VdpBitstreamBuffer |
Application data buffer containing compressed video data. More... | |
struct | VdpPictureInfoMPEG1Or2 |
Picture parameter information for an MPEG 1 or MPEG 2 picture. More... | |
struct | VdpReferenceFrameH264 |
Information about an H.264 reference frame. More... | |
struct | VdpPictureInfoH264 |
Picture parameter information for an H.264 picture. More... | |
struct | VdpPictureInfoH264Predictive |
Picture parameter information for an H.264 Hi444PP picture. More... | |
struct | VdpPictureInfoVC1 |
Picture parameter information for a VC1 picture. More... | |
struct | VdpPictureInfoMPEG4Part2 |
Picture parameter information for an MPEG-4 Part 2 picture. More... | |
struct | VdpPictureInfoVP9 |
struct | VdpPictureInfoHEVC |
Picture parameter information for an H.265/HEVC picture. More... | |
struct | VdpPictureInfoHEVC444 |
Picture parameter information for an HEVC 444 picture. More... | |
struct | VdpPictureInfoAV1 |
Picture parameter information for an AV1 picture. More... | |
Typedefs | |
typedef uint32_t | VdpDecoderProfile |
The set of all known compressed video formats, and associated profiles, that may be decoded. More... | |
typedef VdpStatus | VdpDecoderQueryProfileCapability(VdpDevice device, VdpDecoderProfile profile, VdpDecoderCapability capability, void *capability_value) |
Query the supported value of the requested capability, for the specified profile on the specified device. More... | |
typedef VdpStatus | VdpDecoderQueryCapabilities(VdpDevice device, VdpDecoderProfile profile, VdpBool *is_supported, uint32_t *max_level, uint32_t *max_macroblocks, uint32_t *max_width, uint32_t *max_height) |
Query the implementation's VdpDecoder capabilities. More... | |
typedef uint32_t | VdpDecoder |
An opaque handle representing a VdpDecoder object. More... | |
typedef VdpStatus | VdpDecoderCreate(VdpDevice device, VdpDecoderProfile profile, uint32_t width, uint32_t height, uint32_t max_references, VdpDecoder *decoder) |
Create a VdpDecoder. More... | |
typedef VdpStatus | VdpDecoderDestroy(VdpDecoder decoder) |
Destroy a VdpDecoder. More... | |
typedef VdpStatus | VdpDecoderGetParameters(VdpDecoder decoder, VdpDecoderProfile *profile, uint32_t *width, uint32_t *height) |
Retrieve the parameters used to create a VdpDecoder. More... | |
typedef void | VdpPictureInfo |
A generic "picture information" type. More... | |
typedef VdpPictureInfoMPEG4Part2 | VdpPictureInfoDivX4 |
Picture parameter information for a DivX 4 picture. More... | |
typedef VdpPictureInfoMPEG4Part2 | VdpPictureInfoDivX5 |
Picture parameter information for a DivX 5 picture. More... | |
typedef VdpPictureInfoHEVC444 | VdpPictureInfoHEVCRangeExt |
Picture parameter information for HEVC FormatRangeExtensions picture. More... | |
typedef VdpStatus | VdpDecoderRender(VdpDecoder decoder, VdpVideoSurface target, VdpPictureInfo const *picture_info, uint32_t bitstream_buffer_count, VdpBitstreamBuffer const *bitstream_buffers) |
Decode a compressed field/frame and render the result into a VdpVideoSurface. More... | |
Enumerations | |
enum | VdpVideoSurfaceSupportedPictureStructure { VDP_VIDEO_SURFACE_FIELD_STRUCTURE = (1 << 0) , VDP_VIDEO_SURFACE_FRAME_STRUCTURE = (1 << 1) } |
enum | VdpDecoderCapability { VDP_DECODER_PROFILE_MAX_LEVEL = 0 , VDP_DECODER_PROFILE_MAX_MACROBLOCKS = 1 , VDP_DECODER_PROFILE_MAX_WIDTH = 2 , VDP_DECODER_PROFILE_MAX_HEIGHT = 3 , VDP_DECODER_PROFILE_SUPPORTED_PICTURE_STRUCTURE = 4 , VDP_DECODER_PROFILE_SUPPORTED_CHROMA_TYPES = 5 } |
The VdpDecoder object decodes compressed video data, writing the results to a VdpVideoSurface.
A specific VDPAU implementation may support decoding multiple types of compressed video data. However, VdpDecoder objects are able to decode a specific type of compressed video data. This type must be specified during creation.
#define VDP_BITSTREAM_BUFFER_VERSION 0 |
#define VDP_DECODER_LEVEL_AV1_2_0 |
#define VDP_DECODER_LEVEL_AV1_2_1 |
#define VDP_DECODER_LEVEL_AV1_2_2 |
#define VDP_DECODER_LEVEL_AV1_2_3 |
#define VDP_DECODER_LEVEL_AV1_3_0 |
#define VDP_DECODER_LEVEL_AV1_3_1 |
#define VDP_DECODER_LEVEL_AV1_3_2 |
#define VDP_DECODER_LEVEL_AV1_3_3 |
#define VDP_DECODER_LEVEL_AV1_4_0 |
#define VDP_DECODER_LEVEL_AV1_4_1 |
#define VDP_DECODER_LEVEL_AV1_4_2 |
#define VDP_DECODER_LEVEL_AV1_4_3 |
#define VDP_DECODER_LEVEL_AV1_5_0 |
#define VDP_DECODER_LEVEL_AV1_5_1 |
#define VDP_DECODER_LEVEL_AV1_5_2 |
#define VDP_DECODER_LEVEL_AV1_5_3 |
#define VDP_DECODER_LEVEL_AV1_6_0 |
#define VDP_DECODER_LEVEL_AV1_6_1 |
#define VDP_DECODER_LEVEL_AV1_6_2 |
#define VDP_DECODER_LEVEL_AV1_6_3 |
#define VDP_DECODER_LEVEL_AV1_7_0 |
#define VDP_DECODER_LEVEL_AV1_7_1 |
#define VDP_DECODER_LEVEL_AV1_7_2 |
#define VDP_DECODER_LEVEL_AV1_7_3 |
#define VDP_DECODER_LEVEL_DIVX_NA |
#define VDP_DECODER_LEVEL_H264_1 |
#define VDP_DECODER_LEVEL_H264_1_1 |
#define VDP_DECODER_LEVEL_H264_1_2 |
#define VDP_DECODER_LEVEL_H264_1_3 |
#define VDP_DECODER_LEVEL_H264_1b |
#define VDP_DECODER_LEVEL_H264_2 |
#define VDP_DECODER_LEVEL_H264_2_1 |
#define VDP_DECODER_LEVEL_H264_2_2 |
#define VDP_DECODER_LEVEL_H264_3 |
#define VDP_DECODER_LEVEL_H264_3_1 |
#define VDP_DECODER_LEVEL_H264_3_2 |
#define VDP_DECODER_LEVEL_H264_4 |
#define VDP_DECODER_LEVEL_H264_4_1 |
#define VDP_DECODER_LEVEL_H264_4_2 |
#define VDP_DECODER_LEVEL_H264_5 |
#define VDP_DECODER_LEVEL_H264_5_1 |
#define VDP_DECODER_LEVEL_HEVC_1 30 |
The VDPAU H.265/HEVC decoder levels correspond to the values of general_level_idc as described in the H.265 Specification, Annex A, Table A.1. The enumeration values are equal to thirty times the level number.
#define VDP_DECODER_LEVEL_HEVC_2 |
#define VDP_DECODER_LEVEL_HEVC_2_1 |
#define VDP_DECODER_LEVEL_HEVC_3 |
#define VDP_DECODER_LEVEL_HEVC_3_1 |
#define VDP_DECODER_LEVEL_HEVC_4 |
#define VDP_DECODER_LEVEL_HEVC_4_1 |
#define VDP_DECODER_LEVEL_HEVC_5 |
#define VDP_DECODER_LEVEL_HEVC_5_1 |
#define VDP_DECODER_LEVEL_HEVC_5_2 |
#define VDP_DECODER_LEVEL_HEVC_6 |
#define VDP_DECODER_LEVEL_HEVC_6_1 |
#define VDP_DECODER_LEVEL_HEVC_6_2 |
#define VDP_DECODER_LEVEL_MPEG1_NA |
#define VDP_DECODER_LEVEL_MPEG2_HL |
#define VDP_DECODER_LEVEL_MPEG2_HL14 |
#define VDP_DECODER_LEVEL_MPEG2_LL |
#define VDP_DECODER_LEVEL_MPEG2_ML |
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 |
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 |
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 |
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 |
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 |
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 |
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 |
#define VDP_DECODER_LEVEL_VC1_MAIN_HIGH |
#define VDP_DECODER_LEVEL_VC1_MAIN_LOW |
#define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM |
#define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW |
#define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM |
#define VDP_DECODER_LEVEL_VP9_L1 |
#define VDP_DECODER_PROFILE_AV1_HIGH |
#define VDP_DECODER_PROFILE_AV1_MAIN |
#define VDP_DECODER_PROFILE_AV1_PROFESSIONAL |
#define VDP_DECODER_PROFILE_DIVX4_HD_1080P |
#define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER |
#define VDP_DECODER_PROFILE_DIVX4_MOBILE |
#define VDP_DECODER_PROFILE_DIVX4_QMOBILE |
#define VDP_DECODER_PROFILE_DIVX5_HD_1080P |
#define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER |
#define VDP_DECODER_PROFILE_DIVX5_MOBILE |
#define VDP_DECODER_PROFILE_DIVX5_QMOBILE |
#define VDP_DECODER_PROFILE_H264_BASELINE |
MPEG 4 part 10 == H.264 == AVC.
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE |
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH |
#define VDP_DECODER_PROFILE_H264_EXTENDED |
#define VDP_DECODER_PROFILE_H264_HIGH |
#define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE |
Support for 8 bit depth only.
#define VDP_DECODER_PROFILE_H264_MAIN |
#define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH |
#define VDP_DECODER_PROFILE_HEVC_MAIN |
MPEG-H Part 2 == H.265 == HEVC.
#define VDP_DECODER_PROFILE_HEVC_MAIN_10 |
#define VDP_DECODER_PROFILE_HEVC_MAIN_12 |
#define VDP_DECODER_PROFILE_HEVC_MAIN_444 |
#define VDP_DECODER_PROFILE_HEVC_MAIN_444_10 |
#define VDP_DECODER_PROFILE_HEVC_MAIN_444_12 |
#define VDP_DECODER_PROFILE_HEVC_MAIN_STILL |
#define VDP_DECODER_PROFILE_MPEG1 |
#define VDP_DECODER_PROFILE_MPEG2_MAIN |
#define VDP_DECODER_PROFILE_MPEG2_SIMPLE |
#define VDP_DECODER_PROFILE_MPEG4_PART2_ASP |
#define VDP_DECODER_PROFILE_MPEG4_PART2_SP |
#define VDP_DECODER_PROFILE_VC1_ADVANCED |
#define VDP_DECODER_PROFILE_VC1_MAIN |
#define VDP_DECODER_PROFILE_VC1_SIMPLE |
#define VDP_DECODER_PROFILE_VP9_PROFILE_0 |
#define VDP_DECODER_PROFILE_VP9_PROFILE_1 |
#define VDP_DECODER_PROFILE_VP9_PROFILE_2 |
#define VDP_DECODER_PROFILE_VP9_PROFILE_3 |
typedef uint32_t VdpDecoder |
An opaque handle representing a VdpDecoder object.
typedef VdpStatus VdpDecoderCreate(VdpDevice device, VdpDecoderProfile profile, uint32_t width, uint32_t height, uint32_t max_references, VdpDecoder *decoder) |
Create a VdpDecoder.
[in] | device | The device that will contain the surface. |
[in] | profile | The video format the decoder will decode. |
[in] | width | The width of the new surface. |
[in] | height | The height of the new surface. |
[in] | max_references | The maximum number of references that may be used by a single frame in the stream to be decoded. This parameter exists mainly for formats such as H.264, where different streams may use a different number of references. Requesting too many references may waste memory, but decoding should still operate correctly. Requesting too few references will cause decoding to fail. |
[out] | decoder | The new decoder's handle. |
typedef VdpStatus VdpDecoderDestroy(VdpDecoder decoder) |
Destroy a VdpDecoder.
[in] | surface | The decoder's handle. |
typedef VdpStatus VdpDecoderGetParameters(VdpDecoder decoder, VdpDecoderProfile *profile, uint32_t *width, uint32_t *height) |
Retrieve the parameters used to create a VdpDecoder.
[in] | surface | The surface's handle. |
[out] | profile | The video format used to create the decoder. |
[out] | width | The width of surfaces decode by the decoder. |
[out] | height | The height of surfaces decode by the decoder |
typedef uint32_t VdpDecoderProfile |
The set of all known compressed video formats, and associated profiles, that may be decoded.
typedef VdpStatus VdpDecoderQueryCapabilities(VdpDevice device, VdpDecoderProfile profile, VdpBool *is_supported, uint32_t *max_level, uint32_t *max_macroblocks, uint32_t *max_width, uint32_t *max_height) |
Query the implementation's VdpDecoder capabilities.
[in] | device | The device to query. |
[in] | profile | The decoder profile for which information is requested. |
[out] | is_supported | Is this profile supported? |
[out] | max_level | The maximum specification level supported for this profile. |
[out] | max_macroblocks | The maximum supported surface size in macroblocks. Note that this could be greater than that dictated by the maximum level. |
[out] | max_width | The maximum supported surface width for this profile. Note that this could be greater than that dictated by the maximum level. |
[out] | max_height | The maximum supported surface height for this profile. Note that this could be greater than that dictated by the maximum level. |
typedef VdpStatus VdpDecoderQueryProfileCapability(VdpDevice device, VdpDecoderProfile profile, VdpDecoderCapability capability, void *capability_value) |
Query the supported value of the requested capability, for the specified profile on the specified device.
[in] | device | The device to query. |
[in] | profile | The decoder profile for which information is requested. |
[in] | capability | The decoder profile capability for which the value is requested. |
[out] | capability_value | The value of the requested capability. |
typedef VdpStatus VdpDecoderRender(VdpDecoder decoder, VdpVideoSurface target, VdpPictureInfo const *picture_info, uint32_t bitstream_buffer_count, VdpBitstreamBuffer const *bitstream_buffers) |
Decode a compressed field/frame and render the result into a VdpVideoSurface.
[in] | decoder | The decoder object that will perform the decode operation. |
[in] | target | The video surface to render to. |
[in] | picture_info | A (pointer to a) structure containing information about the picture to be decoded. Note that the appropriate type of VdpPictureInfo* structure must be provided to match to profile that the decoder was created for. |
[in] | bitstream_buffer_count | The number of bitstream buffers containing compressed data for this picture. |
[in] | bitstream_buffers | An array of bitstream buffers. |
See Video Mixer Usage for additional information.
typedef void VdpPictureInfo |
A generic "picture information" type.
This type serves solely to document the expected usage of a generic (void *) function parameter. In actual usage, the application is expected to physically provide a pointer to an instance of one of the "real" VdpPictureInfo* structures, picking the type appropriate for the decoder object in question.
Picture parameter information for a DivX 4 picture.
Due to similarites between MPEG-4 Part 2 and DivX 4, the picture parameter structure is re-used.
Picture parameter information for a DivX 5 picture.
Due to similarites between MPEG-4 Part 2 and DivX 5, the picture parameter structure is re-used.
Picture parameter information for HEVC FormatRangeExtensions picture.
HEVC Main 444 Profile is part of Format Range Extensions profiles, Due to similarities between Format Range Extensions profiles, the picture parameter structure is re-used for Format Range Extensions profiles supported.
enum VdpDecoderCapability |