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.
◆ AVVDPAU_Render2
◆ AVVDPAUContext
◆ av_alloc_vdpaucontext()
◆ av_vdpau_hwaccel_get_render2()
◆ av_vdpau_hwaccel_set_render2()
◆ av_vdpau_bind_context()
int av_vdpau_bind_context |
( |
AVCodecContext * |
avctx, |
|
|
VdpDevice |
device, |
|
|
VdpGetProcAddress * |
get_proc_address, |
|
|
unsigned |
flags |
|
) |
| |
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavcodec/vdpau.h>
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).
- Заметки
- get_format() must return AV_PIX_FMT_VDPAU if this function completes successfully.
- Аргументы
-
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 |
- Возвращает
- 0 on success, an AVERROR code on failure.
◆ av_vdpau_get_surface_parameters()
#include <C:/git/world-of-might-and-magic/lib/win32/x86/ffmpeg-4.2.2/include/libavcodec/vdpau.h>
Gets the parameters to create an adequate VDPAU video surface for the codec context using VDPAU hardware decoding acceleration.
- Заметки
- Behavior is undefined if the context was not successfully bound to a VDPAU device using av_vdpau_bind_context().
- Аргументы
-
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) |
- Возвращает
- 0 on success, a negative AVERROR code on failure.
◆ av_vdpau_alloc_context()
◆ av_vdpau_get_profile()
attribute_deprecated int av_vdpau_get_profile |
( |
AVCodecContext * |
avctx, |
|
|
VdpDecoderProfile * |
profile |
|
) |
| |
◆ decoder
VdpDecoder AVVDPAUContext::decoder |
VDPAU decoder handle
Set by user.
См. определение в файле vdpau.h строка 87
◆ render
VdpDecoderRender* AVVDPAUContext::render |
VDPAU decoder render callback
Set by the user.
См. определение в файле vdpau.h строка 94
◆ render2