VDPAU hardware acceleration has two modules.
More...
|
file | vdpau.h |
| Public libavcodec VDPAU header.
|
|
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.
#define FF_VDPAU_STATE_USED_FOR_RENDER 1 |
The videoSurface is used for rendering.
Definition at line 219 of file vdpau.h.
#define FF_VDPAU_STATE_USED_FOR_REFERENCE 2 |
The videoSurface is needed for reference/prediction.
The codec manipulates this.
Definition at line 225 of file vdpau.h.
typedef int(* AVVDPAU_Render2)(struct AVCodecContext *, struct AVFrame *, const VdpPictureInfo *, uint32_t, const VdpBitstreamBuffer *) |
allocation function for AVVDPAUContext
Allows extending the struct without breaking API/ABI
Definition at line 75 of file vdpau.c.
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.
Definition at line 822 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
-
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.
Definition at line 82 of file vdpau.c.
Referenced by ff_vdpau_common_init().
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
-
avctx | the codec context being used for decoding the stream |
profile | a 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 769 of file vdpau.c.