VdpDecoder; Video Decoding object
[Core API]

Collaboration diagram for VdpDecoder; Video Decoding object:

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.


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.


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 on Wed Jul 3 20:00:24 2013 for VDPAU by  doxygen 1.5.6