VdpDecoder; Video Decoding object
[Core API]

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

Defines

#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.
#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.
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.
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.
typedef VdpStatus VdpDecoderDestroy (VdpDecoder decoder)
 Destroy a VdpDecoder.
typedef VdpStatus VdpDecoderGetParameters (VdpDecoder decoder, VdpDecoderProfile *profile, uint32_t *width, uint32_t *height)
 Retrieve the parameters used to create a VdpDecoder.
typedef void * VdpPictureInfo
 A generic "picture information" pointer type.
typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4
 Picture parameter information for a DivX 4 picture.
typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5
 Picture parameter information for a DivX 5 picture.
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.

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.


Define Documentation

#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_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_HIGH
#define VDP_DECODER_PROFILE_H264_MAIN
#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

Typedef Documentation

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.

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.
typedef VdpStatus VdpDecoderGetParameters(VdpDecoder decoder,VdpDecoderProfile *profile, uint32_t *width, uint32_t *height)

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

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.
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] 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.

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.

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.


Generated by  doxygen 1.6.2