FFmpeg
|
VDPAU hardware acceleration has two modules. More...
Files | |
file | vdpau.h |
Public libavcodec VDPAU header. | |
Data Structures | |
union | AVVDPAUPictureInfo |
struct | AVVDPAUContext |
This structure is used to share data between the libavcodec library and the client video application. More... | |
struct | vdpau_render_state |
This structure is used as a callback between the FFmpeg decoder (vd_) and presentation (vo_) module. More... | |
Macros | |
#define | FF_VDPAU_STATE_USED_FOR_RENDER 1 |
The videoSurface is used for rendering. | |
#define | FF_VDPAU_STATE_USED_FOR_REFERENCE 2 |
The videoSurface is needed for reference/prediction. | |
Typedefs | |
typedef int(* | AVVDPAU_Render2 )(struct AVCodecContext *, struct AVFrame *, const VdpPictureInfo *, uint32_t, const VdpBitstreamBuffer *) |
Functions | |
AVVDPAUContext * | av_alloc_vdpaucontext (void) |
allocation function for AVVDPAUContext | |
AVVDPAU_Render2 | av_vdpau_hwaccel_get_render2 (const AVVDPAUContext *) |
void | av_vdpau_hwaccel_set_render2 (AVVDPAUContext *, AVVDPAU_Render2) |
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. | |
AVVDPAUContext * | av_vdpau_alloc_context (void) |
Allocate an AVVDPAUContext. | |
int | av_vdpau_get_profile (AVCodecContext *avctx, VdpDecoderProfile *profile) |
Get a decoder profile that should be used for initializing a VDPAU decoder. | |
VDPAU hardware acceleration has two modules.
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 |
#define FF_VDPAU_STATE_USED_FOR_REFERENCE 2 |
typedef int(* AVVDPAU_Render2)(struct AVCodecContext *, struct AVFrame *, const VdpPictureInfo *, uint32_t, const VdpBitstreamBuffer *) |
AVVDPAUContext* av_alloc_vdpaucontext | ( | void | ) |
allocation function for AVVDPAUContext
Allows extending the struct without breaking API/ABI
AVVDPAU_Render2 av_vdpau_hwaccel_get_render2 | ( | const AVVDPAUContext * | ) |
void av_vdpau_hwaccel_set_render2 | ( | AVVDPAUContext * | , |
AVVDPAU_Render2 | |||
) |
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).
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 |
Definition at line 686 of file vdpau.c.
Referenced by vdpau_alloc().
AVVDPAUContext* av_vdpau_alloc_context | ( | void | ) |
Allocate an AVVDPAUContext.
Definition at line 681 of file vdpau.c.
Referenced by av_alloc_vdpaucontext(), and vdpau_alloc().
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.
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. |
Definition at line 638 of file vdpau.c.
Referenced by vdpau_old_init().