FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
VDPAU_Decoding

Functions

static int vdpau_error (VdpStatus status)
 
AVVDPAUContextav_alloc_vdpaucontext (void)
 allocation function for AVVDPAUContext More...
 
int av_vdpau_get_surface_parameters (AVCodecContext *avctx, VdpChromaType *type, uint32_t *width, uint32_t *height)
 Gets the parameters to create an adequate VDPAU video surface for the codec context using VDPAU hardware decoding acceleration. More...
 
int ff_vdpau_common_init (AVCodecContext *avctx, VdpDecoderProfile profile, int level)
 
int ff_vdpau_common_uninit (AVCodecContext *avctx)
 
static int ff_vdpau_common_reinit (AVCodecContext *avctx)
 
int ff_vdpau_common_start_frame (struct vdpau_picture_context *pic_ctx, av_unused const uint8_t *buffer, av_unused uint32_t size)
 
int ff_vdpau_common_end_frame (AVCodecContext *avctx, AVFrame *frame, struct vdpau_picture_context *pic_ctx)
 
int ff_vdpau_add_buffer (struct vdpau_picture_context *pic_ctx, const uint8_t *buf, uint32_t size)
 
void ff_vdpau_h264_set_reference_frames (H264Context *h)
 
void ff_vdpau_add_data_chunk (uint8_t *data, const uint8_t *buf, int buf_size)
 
int av_vdpau_get_profile (AVCodecContext *avctx, VdpDecoderProfile *profile)
 Get a decoder profile that should be used for initializing a VDPAU decoder. More...
 
AVVDPAUContextav_vdpau_alloc_context (void)
 Allocate an AVVDPAUContext. More...
 
int av_vdpau_bind_context (AVCodecContext *avctx, VdpDevice device, VdpGetProcAddress *get_proc, unsigned flags)
 Associate a VDPAU device with a codec context for hardware acceleration. More...
 

Detailed Description

Function Documentation

static int vdpau_error ( VdpStatus  status)
static

Definition at line 44 of file vdpau.c.

Referenced by ff_vdpau_common_end_frame(), ff_vdpau_common_init(), and ff_vdpau_common_uninit().

AVVDPAUContext* av_alloc_vdpaucontext ( void  )

allocation function for AVVDPAUContext

Allows extending the struct without breaking API/ABI

Definition at line 68 of file vdpau.c.

int av_vdpau_get_surface_parameters ( AVCodecContext avctx,
VdpChromaType *  type,
uint32_t *  width,
uint32_t *  height 
)

Gets the parameters to create an adequate VDPAU video surface for the codec context using VDPAU hardware decoding acceleration.

Note
Behavior is undefined if the context was not successfully bound to a VDPAU device using av_vdpau_bind_context().
Parameters
avctxthe codec context being used for decoding the stream
typestorage space for the VDPAU video surface chroma type (or NULL to ignore)
widthstorage space for the VDPAU video surface pixel width (or NULL to ignore)
heightstorage space for the VDPAU video surface pixel height (or NULL to ignore)
Returns
0 on success, a negative AVERROR code on failure.

Definition at line 75 of file vdpau.c.

Referenced by ff_vdpau_common_init(), and vdpau_get_buffer().

int ff_vdpau_common_init ( AVCodecContext avctx,
VdpDecoderProfile  profile,
int  level 
)

Definition at line 115 of file vdpau.c.

Referenced by vdpau_h264_init(), and vdpau_vc1_init().

int ff_vdpau_common_uninit ( AVCodecContext avctx)

Definition at line 229 of file vdpau.c.

static int ff_vdpau_common_reinit ( AVCodecContext avctx)
static

Definition at line 252 of file vdpau.c.

Referenced by ff_vdpau_common_end_frame().

int ff_vdpau_common_start_frame ( struct vdpau_picture_context *  pic_ctx,
av_unused const uint8_t buffer,
av_unused uint32_t  size 
)
int ff_vdpau_common_end_frame ( AVCodecContext avctx,
AVFrame frame,
struct vdpau_picture_context *  pic_ctx 
)

Definition at line 277 of file vdpau.c.

Referenced by vdpau_h264_end_frame().

int ff_vdpau_add_buffer ( struct vdpau_picture_context *  pic_ctx,
const uint8_t buf,
uint32_t  size 
)
void ff_vdpau_h264_set_reference_frames ( H264Context h)

Definition at line 361 of file vdpau.c.

Referenced by ff_h264_field_end().

void ff_vdpau_add_data_chunk ( uint8_t data,
const uint8_t buf,
int  buf_size 
)

Definition at line 429 of file vdpau.c.

Referenced by decode_nal_units().

int av_vdpau_get_profile ( AVCodecContext avctx,
VdpDecoderProfile *  profile 
)

Get a decoder profile that should be used for initializing a VDPAU decoder.

Should be called from the AVCodecContext.get_format() callback.

Parameters
avctxthe codec context being used for decoding the stream
profilea pointer into which the result will be written on success. The contents of profile are undefined if this function returns an error.
Returns
0 on success (non-negative), a negative AVERROR on failure.

Definition at line 696 of file vdpau.c.

Referenced by vdpau_old_init().

AVVDPAUContext* av_vdpau_alloc_context ( void  )

Allocate an AVVDPAUContext.

Returns
Newly-allocated AVVDPAUContext or NULL on failure.

Definition at line 743 of file vdpau.c.

Referenced by av_alloc_vdpaucontext(), and vdpau_alloc().

int av_vdpau_bind_context ( AVCodecContext avctx,
VdpDevice  device,
VdpGetProcAddress *  get_proc_address,
unsigned  flags 
)

Associate a VDPAU device with a codec context for hardware acceleration.

This function is meant to be called from the get_format() codec callback, or earlier. It can also be called after avcodec_flush_buffers() to change the underlying VDPAU device mid-stream (e.g. to recover from non-transparent display preemption).

Note
get_format() must return AV_PIX_FMT_VDPAU if this function completes successfully.
Parameters
avctxdecoding context whose get_format() callback is invoked
deviceVDPAU device handle to use for hardware acceleration
get_proc_addressVDPAU device driver
flagszero of more OR'd AV_HWACCEL_FLAG_* flags
Returns
0 on success, an AVERROR code on failure.

Definition at line 748 of file vdpau.c.

Referenced by vdpau_alloc().