The VdpDecoder object decodes compressed video data, writing the results to a VdpVideoSurface.
More...
|
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 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...
|
|
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.
◆ VDP_BITSTREAM_BUFFER_VERSION
#define VDP_BITSTREAM_BUFFER_VERSION 0 |
◆ VDP_DECODER_LEVEL_DIVX_NA
#define VDP_DECODER_LEVEL_DIVX_NA |
◆ VDP_DECODER_LEVEL_H264_1
#define VDP_DECODER_LEVEL_H264_1 |
◆ VDP_DECODER_LEVEL_H264_1_1
#define VDP_DECODER_LEVEL_H264_1_1 |
◆ VDP_DECODER_LEVEL_H264_1_2
#define VDP_DECODER_LEVEL_H264_1_2 |
◆ VDP_DECODER_LEVEL_H264_1_3
#define VDP_DECODER_LEVEL_H264_1_3 |
◆ VDP_DECODER_LEVEL_H264_1b
#define VDP_DECODER_LEVEL_H264_1b |
◆ VDP_DECODER_LEVEL_H264_2
#define VDP_DECODER_LEVEL_H264_2 |
◆ VDP_DECODER_LEVEL_H264_2_1
#define VDP_DECODER_LEVEL_H264_2_1 |
◆ VDP_DECODER_LEVEL_H264_2_2
#define VDP_DECODER_LEVEL_H264_2_2 |
◆ VDP_DECODER_LEVEL_H264_3
#define VDP_DECODER_LEVEL_H264_3 |
◆ VDP_DECODER_LEVEL_H264_3_1
#define VDP_DECODER_LEVEL_H264_3_1 |
◆ VDP_DECODER_LEVEL_H264_3_2
#define VDP_DECODER_LEVEL_H264_3_2 |
◆ VDP_DECODER_LEVEL_H264_4
#define VDP_DECODER_LEVEL_H264_4 |
◆ VDP_DECODER_LEVEL_H264_4_1
#define VDP_DECODER_LEVEL_H264_4_1 |
◆ VDP_DECODER_LEVEL_H264_4_2
#define VDP_DECODER_LEVEL_H264_4_2 |
◆ VDP_DECODER_LEVEL_H264_5
#define VDP_DECODER_LEVEL_H264_5 |
◆ VDP_DECODER_LEVEL_H264_5_1
#define VDP_DECODER_LEVEL_H264_5_1 |
◆ VDP_DECODER_LEVEL_HEVC_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.
◆ VDP_DECODER_LEVEL_HEVC_2
#define VDP_DECODER_LEVEL_HEVC_2 |
◆ VDP_DECODER_LEVEL_HEVC_2_1
#define VDP_DECODER_LEVEL_HEVC_2_1 |
◆ VDP_DECODER_LEVEL_HEVC_3
#define VDP_DECODER_LEVEL_HEVC_3 |
◆ VDP_DECODER_LEVEL_HEVC_3_1
#define VDP_DECODER_LEVEL_HEVC_3_1 |
◆ VDP_DECODER_LEVEL_HEVC_4
#define VDP_DECODER_LEVEL_HEVC_4 |
◆ VDP_DECODER_LEVEL_HEVC_4_1
#define VDP_DECODER_LEVEL_HEVC_4_1 |
◆ VDP_DECODER_LEVEL_HEVC_5
#define VDP_DECODER_LEVEL_HEVC_5 |
◆ VDP_DECODER_LEVEL_HEVC_5_1
#define VDP_DECODER_LEVEL_HEVC_5_1 |
◆ VDP_DECODER_LEVEL_HEVC_5_2
#define VDP_DECODER_LEVEL_HEVC_5_2 |
◆ VDP_DECODER_LEVEL_HEVC_6
#define VDP_DECODER_LEVEL_HEVC_6 |
◆ VDP_DECODER_LEVEL_HEVC_6_1
#define VDP_DECODER_LEVEL_HEVC_6_1 |
◆ VDP_DECODER_LEVEL_HEVC_6_2
#define VDP_DECODER_LEVEL_HEVC_6_2 |
◆ VDP_DECODER_LEVEL_MPEG1_NA
#define VDP_DECODER_LEVEL_MPEG1_NA |
◆ VDP_DECODER_LEVEL_MPEG2_HL
#define VDP_DECODER_LEVEL_MPEG2_HL |
◆ VDP_DECODER_LEVEL_MPEG2_HL14
#define VDP_DECODER_LEVEL_MPEG2_HL14 |
◆ VDP_DECODER_LEVEL_MPEG2_LL
#define VDP_DECODER_LEVEL_MPEG2_LL |
◆ VDP_DECODER_LEVEL_MPEG2_ML
#define VDP_DECODER_LEVEL_MPEG2_ML |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 |
◆ VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 |
◆ VDP_DECODER_LEVEL_VC1_ADVANCED_L0
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 |
◆ VDP_DECODER_LEVEL_VC1_ADVANCED_L1
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 |
◆ VDP_DECODER_LEVEL_VC1_ADVANCED_L2
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 |
◆ VDP_DECODER_LEVEL_VC1_ADVANCED_L3
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 |
◆ VDP_DECODER_LEVEL_VC1_ADVANCED_L4
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 |
◆ VDP_DECODER_LEVEL_VC1_MAIN_HIGH
#define VDP_DECODER_LEVEL_VC1_MAIN_HIGH |
◆ VDP_DECODER_LEVEL_VC1_MAIN_LOW
#define VDP_DECODER_LEVEL_VC1_MAIN_LOW |
◆ VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM
#define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM |
◆ VDP_DECODER_LEVEL_VC1_SIMPLE_LOW
#define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW |
◆ VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM
#define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM |
◆ VDP_DECODER_LEVEL_VP9_L1
#define VDP_DECODER_LEVEL_VP9_L1 |
◆ VDP_DECODER_PROFILE_DIVX4_HD_1080P
#define VDP_DECODER_PROFILE_DIVX4_HD_1080P |
◆ VDP_DECODER_PROFILE_DIVX4_HOME_THEATER
#define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER |
◆ VDP_DECODER_PROFILE_DIVX4_MOBILE
#define VDP_DECODER_PROFILE_DIVX4_MOBILE |
◆ VDP_DECODER_PROFILE_DIVX4_QMOBILE
#define VDP_DECODER_PROFILE_DIVX4_QMOBILE |
◆ VDP_DECODER_PROFILE_DIVX5_HD_1080P
#define VDP_DECODER_PROFILE_DIVX5_HD_1080P |
◆ VDP_DECODER_PROFILE_DIVX5_HOME_THEATER
#define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER |
◆ VDP_DECODER_PROFILE_DIVX5_MOBILE
#define VDP_DECODER_PROFILE_DIVX5_MOBILE |
◆ VDP_DECODER_PROFILE_DIVX5_QMOBILE
#define VDP_DECODER_PROFILE_DIVX5_QMOBILE |
◆ VDP_DECODER_PROFILE_H264_BASELINE
#define VDP_DECODER_PROFILE_H264_BASELINE |
MPEG 4 part 10 == H.264 == AVC.
◆ VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE |
◆ VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH |
◆ VDP_DECODER_PROFILE_H264_EXTENDED
#define VDP_DECODER_PROFILE_H264_EXTENDED |
◆ VDP_DECODER_PROFILE_H264_HIGH
#define VDP_DECODER_PROFILE_H264_HIGH |
◆ VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE
#define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE |
Support for 8 bit depth only.
◆ VDP_DECODER_PROFILE_H264_MAIN
#define VDP_DECODER_PROFILE_H264_MAIN |
◆ VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH
#define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH |
◆ VDP_DECODER_PROFILE_HEVC_MAIN
#define VDP_DECODER_PROFILE_HEVC_MAIN |
MPEG-H Part 2 == H.265 == HEVC.
◆ VDP_DECODER_PROFILE_HEVC_MAIN_10
#define VDP_DECODER_PROFILE_HEVC_MAIN_10 |
◆ VDP_DECODER_PROFILE_HEVC_MAIN_12
#define VDP_DECODER_PROFILE_HEVC_MAIN_12 |
◆ VDP_DECODER_PROFILE_HEVC_MAIN_444
#define VDP_DECODER_PROFILE_HEVC_MAIN_444 |
◆ VDP_DECODER_PROFILE_HEVC_MAIN_STILL
#define VDP_DECODER_PROFILE_HEVC_MAIN_STILL |
◆ VDP_DECODER_PROFILE_MPEG1
#define VDP_DECODER_PROFILE_MPEG1 |
◆ VDP_DECODER_PROFILE_MPEG2_MAIN
#define VDP_DECODER_PROFILE_MPEG2_MAIN |
◆ VDP_DECODER_PROFILE_MPEG2_SIMPLE
#define VDP_DECODER_PROFILE_MPEG2_SIMPLE |
◆ VDP_DECODER_PROFILE_MPEG4_PART2_ASP
#define VDP_DECODER_PROFILE_MPEG4_PART2_ASP |
◆ VDP_DECODER_PROFILE_MPEG4_PART2_SP
#define VDP_DECODER_PROFILE_MPEG4_PART2_SP |
◆ VDP_DECODER_PROFILE_VC1_ADVANCED
#define VDP_DECODER_PROFILE_VC1_ADVANCED |
◆ VDP_DECODER_PROFILE_VC1_MAIN
#define VDP_DECODER_PROFILE_VC1_MAIN |
◆ VDP_DECODER_PROFILE_VC1_SIMPLE
#define VDP_DECODER_PROFILE_VC1_SIMPLE |
◆ VDP_DECODER_PROFILE_VP9_PROFILE_0
#define VDP_DECODER_PROFILE_VP9_PROFILE_0 |
◆ VDP_DECODER_PROFILE_VP9_PROFILE_1
#define VDP_DECODER_PROFILE_VP9_PROFILE_1 |
◆ VDP_DECODER_PROFILE_VP9_PROFILE_2
#define VDP_DECODER_PROFILE_VP9_PROFILE_2 |
◆ VDP_DECODER_PROFILE_VP9_PROFILE_3
#define VDP_DECODER_PROFILE_VP9_PROFILE_3 |
◆ VdpDecoder
An opaque handle representing a VdpDecoder object.
◆ VdpDecoderCreate
Create a VdpDecoder.
- Parameters
-
[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. |
- Returns
- VdpStatus The completion status of the operation.
◆ VdpDecoderDestroy
Destroy a VdpDecoder.
- Parameters
-
[in] | surface | The decoder's handle. |
- Returns
- VdpStatus The completion status of the operation.
◆ VdpDecoderGetParameters
Retrieve the parameters used to create a VdpDecoder.
- Parameters
-
[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 |
- Returns
- VdpStatus The completion status of the operation.
◆ VdpDecoderProfile
The set of all known compressed video formats, and associated profiles, that may be decoded.
◆ VdpDecoderQueryCapabilities
Query the implementation's VdpDecoder capabilities.
- Parameters
-
[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. |
- Returns
- VdpStatus The completion status of the operation.
◆ VdpDecoderQueryProfileCapability
Query the supported value of the requested capability, for the specified profile on the specified device.
- Parameters
-
[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. |
- Returns
- VdpStatus The completion status of the operation.
◆ VdpDecoderRender
Decode a compressed field/frame and render the result into a VdpVideoSurface.
- Parameters
-
[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. |
- Returns
- VdpStatus The completion status of the operation.
See Video Mixer Usage for additional information.
◆ 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.
◆ VdpPictureInfoDivX4
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.
◆ VdpPictureInfoDivX5
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.
◆ VdpDecoderCapability
Enumerator |
---|
VDP_DECODER_PROFILE_MAX_LEVEL | |
VDP_DECODER_PROFILE_MAX_MACROBLOCKS | |
VDP_DECODER_PROFILE_MAX_WIDTH | |
VDP_DECODER_PROFILE_MAX_HEIGHT | |
VDP_DECODER_PROFILE_SUPPORTED_PICTURE_STRUCTURE | |
VDP_DECODER_PROFILE_SUPPORTED_CHROMA_TYPES | A list of supported chroma types, stored as a bitmask of 1 shifted by each supported VdpChromaType value. E.g., (1 << VDP_CHROMA_TYPE_420) | (1 << VDP_CHROMA_TYPE_422) | (1 << VDP_CHROMA_TYPE_444)
|
◆ VdpVideoSurfaceSupportedPictureStructure
Enumerator |
---|
VDP_VIDEO_SURFACE_FIELD_STRUCTURE | |
VDP_VIDEO_SURFACE_FRAME_STRUCTURE | |