FFmpeg
Macros | Functions
VDPAU_Decoding

Macros

#define MAKE_ACCESSORS(str, name, type, field)
 

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

Macro Definition Documentation

◆ MAKE_ACCESSORS

#define MAKE_ACCESSORS (   str,
  name,
  type,
  field 
)
Value:
type av_##name##_get_##field(const str *s) { return s->field; } \
void av_##name##_set_##field(str *s, type v) { s->field = v; }

Definition at line 75 of file vdpau.c.

Function Documentation

◆ vdpau_error()

static int vdpau_error ( VdpStatus  status)
static

Definition at line 46 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 70 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 80 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 124 of file vdpau.c.

◆ ff_vdpau_common_init()

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

◆ ff_vdpau_common_uninit()

int ff_vdpau_common_uninit ( AVCodecContext avctx)

Definition at line 294 of file vdpau.c.

◆ ff_vdpau_common_reinit()

static int ff_vdpau_common_reinit ( AVCodecContext avctx)
static

Definition at line 317 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 
)

◆ ff_vdpau_add_buffer()

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

◆ av_vdpau_alloc_context()

AVVDPAUContext* av_vdpau_alloc_context ( void  )

Allocate an AVVDPAUContext.

Returns
Newly-allocated AVVDPAUContext or NULL on failure.

Definition at line 406 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 411 of file vdpau.c.

name
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
Definition: writing_filters.txt:88
type
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
Definition: writing_filters.txt:86
s
#define s(width, name)
Definition: cbs_vp9.c:198
field
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this field
Definition: writing_filters.txt:78