Loading...
Searching...
No Matches
VDPAU Decoder and Renderer
libavcodec » Codecs » Hardware Accelerators bridge

VDPAU hardware acceleration has two modules. More...

## Files

file | vdpau.h
| Public libavcodec VDPAU header.

## Data Structures

struct | AVVDPAUContext
| This structure is used to share data between the libavcodec library and the client video application. More...

## Typedefs

typedef int(* | AVVDPAU_Render2) (struct AVCodecContext *, struct AVFrame *, const VdpPictureInfo *, uint32_t, const VdpBitstreamBuffer *)

## Functions

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

## Detailed Description

VDPAU hardware acceleration has two modules.

- VDPAU decoding
- VDPAU presentation

The VDPAU decoding module parses all headers using FFmpeg parsing mechanisms and uses VDPAU for the actual decoding.

As per the current implementation, the actual decoding and rendering (API calls) are done as part of the VDPAU presentation (vo_vdpau.c) module.

## Typedef Documentation

## AVVDPAU_Render2

typedef int(* AVVDPAU_Render2) (struct AVCodecContext *, struct AVFrame *, const VdpPictureInfo *, uint32_t, const VdpBitstreamBuffer *)

Definition at line 62 of file vdpau.h.

## Function Documentation

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

  avctx | decoding context whose get_format() callback is invoked
  device | VDPAU device handle to use for hardware acceleration
  get_proc_address | VDPAU device driver
  flags | zero of more OR'd AV_HWACCEL_FLAG_* flags

Returns
  0 on success, an AVERROR code on failure.

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

  avctx | the codec context being used for decoding the stream
  type | storage space for the VDPAU video surface chroma type (or NULL to ignore)
  width | storage space for the VDPAU video surface pixel width (or NULL to ignore)
  height | storage space for the VDPAU video surface pixel height (or NULL to ignore)

Returns
  0 on success, a negative AVERROR code on failure.