FFmpeg
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_frame_params (AVCodecContext *avctx, AVBufferRef *hw_frames_ctx)
 
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)
 
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

◆ vdpau_error()

static int vdpau_error ( VdpStatus  status)
static

Definition at line 43 of file vdpau.c.

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

◆ av_alloc_vdpaucontext()

AVVDPAUContext* av_alloc_vdpaucontext ( void  )

allocation function for AVVDPAUContext

Allows extending the struct without breaking API/ABI

Definition at line 67 of file vdpau.c.

◆ av_vdpau_get_surface_parameters()

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 74 of file vdpau.c.

Referenced by ff_vdpau_common_frame_params(), and ff_vdpau_common_init().

◆ ff_vdpau_common_frame_params()

int ff_vdpau_common_frame_params ( AVCodecContext avctx,
AVBufferRef hw_frames_ctx 
)

Definition at line 114 of file vdpau.c.

◆ ff_vdpau_common_init()

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

Definition at line 133 of file vdpau.c.

Referenced by vdpau_h264_init(), vdpau_hevc_init(), vdpau_mpeg4_init(), and vdpau_vc1_init().

◆ ff_vdpau_common_uninit()

int ff_vdpau_common_uninit ( AVCodecContext avctx)

Definition at line 284 of file vdpau.c.

◆ ff_vdpau_common_reinit()

static int ff_vdpau_common_reinit ( AVCodecContext avctx)
static

Definition at line 307 of file vdpau.c.

Referenced by ff_vdpau_common_end_frame().

◆ ff_vdpau_common_start_frame()

int ff_vdpau_common_start_frame ( struct vdpau_picture_context pic_ctx,
av_unused const uint8_t buffer,
av_unused uint32_t  size 
)

◆ ff_vdpau_common_end_frame()

int ff_vdpau_common_end_frame ( AVCodecContext avctx,
AVFrame frame,
struct vdpau_picture_context pic_ctx 
)

Definition at line 332 of file vdpau.c.

Referenced by vdpau_h264_end_frame(), and vdpau_hevc_end_frame().

◆ ff_vdpau_add_buffer()

int ff_vdpau_add_buffer ( struct vdpau_picture_context pic_ctx,
const uint8_t buf,
uint32_t  size 
)

◆ av_vdpau_get_profile()

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.

Deprecated:
Use av_vdpau_bind_context() instead.
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 397 of file vdpau.c.

◆ av_vdpau_alloc_context()

AVVDPAUContext* av_vdpau_alloc_context ( void  )

Allocate an AVVDPAUContext.

Returns
Newly-allocated AVVDPAUContext or NULL on failure.

Definition at line 445 of file vdpau.c.

Referenced by av_alloc_vdpaucontext().

◆ av_vdpau_bind_context()

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 450 of file vdpau.c.