VDPAU
Data Structures | Macros | Typedefs
VdpDecoder; Video Decoding object
Collaboration diagram for VdpDecoder; Video Decoding object:

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  VdpPictureInfoVC1
 Picture parameter information for a VC1 picture. More...
 
struct  VdpPictureInfoMPEG4Part2
 Picture parameter information for an MPEG-4 Part 2 picture. More...
 

Macros

#define VDP_DECODER_PROFILE_MPEG1
 
#define VDP_DECODER_PROFILE_MPEG2_SIMPLE
 
#define VDP_DECODER_PROFILE_MPEG2_MAIN
 
#define VDP_DECODER_PROFILE_H264_BASELINE
 MPEG 4 part 10 == H.264 == AVC. More...
 
#define VDP_DECODER_PROFILE_H264_MAIN
 
#define VDP_DECODER_PROFILE_H264_HIGH
 
#define VDP_DECODER_PROFILE_VC1_SIMPLE
 
#define VDP_DECODER_PROFILE_VC1_MAIN
 
#define VDP_DECODER_PROFILE_VC1_ADVANCED
 
#define VDP_DECODER_PROFILE_MPEG4_PART2_SP
 
#define VDP_DECODER_PROFILE_MPEG4_PART2_ASP
 
#define VDP_DECODER_PROFILE_DIVX4_QMOBILE
 
#define VDP_DECODER_PROFILE_DIVX4_MOBILE
 
#define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER
 
#define VDP_DECODER_PROFILE_DIVX4_HD_1080P
 
#define VDP_DECODER_PROFILE_DIVX5_QMOBILE
 
#define VDP_DECODER_PROFILE_DIVX5_MOBILE
 
#define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER
 
#define VDP_DECODER_PROFILE_DIVX5_HD_1080P
 
#define VDP_DECODER_LEVEL_MPEG1_NA
 
#define VDP_DECODER_LEVEL_MPEG2_LL
 
#define VDP_DECODER_LEVEL_MPEG2_ML
 
#define VDP_DECODER_LEVEL_MPEG2_HL14
 
#define VDP_DECODER_LEVEL_MPEG2_HL
 
#define VDP_DECODER_LEVEL_H264_1
 
#define VDP_DECODER_LEVEL_H264_1b
 
#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_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_VC1_SIMPLE_LOW
 
#define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM
 
#define VDP_DECODER_LEVEL_VC1_MAIN_LOW
 
#define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM
 
#define VDP_DECODER_LEVEL_VC1_MAIN_HIGH
 
#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_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_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_DIVX_NA
 
#define VDP_BITSTREAM_BUFFER_VERSION   0
 

Typedefs

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" pointer 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...
 

Detailed Description

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.

Macro Definition Documentation

§ 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_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_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_HIGH

#define VDP_DECODER_PROFILE_H264_HIGH

§ VDP_DECODER_PROFILE_H264_MAIN

#define VDP_DECODER_PROFILE_H264_MAIN

§ 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

Typedef Documentation

§ VdpDecoder

typedef uint32_t VdpDecoder

An opaque handle representing a VdpDecoder object.

§ VdpDecoderCreate

typedef VdpStatus VdpDecoderCreate(VdpDevice device, VdpDecoderProfile profile, uint32_t width, uint32_t height, uint32_t max_references, VdpDecoder *decoder)

Create a VdpDecoder.

Parameters
[in]deviceThe device that will contain the surface.
[in]profileThe video format the decoder will decode.
[in]widthThe width of the new surface.
[in]heightThe height of the new surface.
[in]max_referencesThe 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]decoderThe new decoder's handle.
Returns
VdpStatus The completion status of the operation.

§ VdpDecoderDestroy

typedef VdpStatus VdpDecoderDestroy(VdpDecoder decoder)

Destroy a VdpDecoder.

Parameters
[in]surfaceThe decoder's handle.
Returns
VdpStatus The completion status of the operation.

§ VdpDecoderGetParameters

typedef VdpStatus VdpDecoderGetParameters(VdpDecoder decoder, VdpDecoderProfile *profile, uint32_t *width, uint32_t *height)

Retrieve the parameters used to create a VdpDecoder.

Parameters
[in]surfaceThe surface's handle.
[out]profileThe video format used to create the decoder.
[out]widthThe width of surfaces decode by the decoder.
[out]heightThe height of surfaces decode by the decoder
Returns
VdpStatus The completion status of the operation.

§ VdpDecoderProfile

typedef uint32_t VdpDecoderProfile

The set of all known compressed video formats, and associated profiles, that may be decoded.

§ VdpDecoderQueryCapabilities

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.

Parameters
[in]deviceThe device to query.
[in]profileThe decoder profile for which information is requested.
[out]is_supportedIs this profile supported?
[out]max_levelThe maximum specification level supported for this profile.
[out]max_macroblocksThe maximum supported surface size in macroblocks. Note that this could be greater than that dictated by the maximum level.
[out]max_widthThe maximum supported surface width for this profile. Note that this could be greater than that dictated by the maximum level.
[out]max_heightThe 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.

§ VdpDecoderRender

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.

Parameters
[in]decoderThe decoder object that will perform the decode operation.
[in]targetThe video surface to render to.
[in]picture_infoA (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_countThe number of bitstream buffers containing compressed data for this picture.
[in]bitstream_buffersAn array of bitstream buffers.
Returns
VdpStatus The completion status of the operation.

See Video Mixer Usage for additional information.

§ VdpPictureInfo

typedef void* VdpPictureInfo

A generic "picture information" pointer 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.