|
typedef uint32_t | VdpDecoderProfile |
| The set of all known compressed video formats, and associated profiles, that may be decoded. 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.
#define VDP_BITSTREAM_BUFFER_VERSION 0 |
#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_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_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 |
An opaque handle representing a VdpDecoder object.
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.
Destroy a VdpDecoder.
- Parameters
-
[in] | surface | The decoder's handle. |
- Returns
- VdpStatus The completion status of the operation.
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.
The set of all known compressed video formats, and associated profiles, that may be decoded.
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.
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.
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.