|
FFmpeg
|
VDPAU hardware acceleration has two modules. More...
Files | |
| file | vdpau.h |
| Public libavcodec VDPAU header. | |
Classes | |
| 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 *) |
| typedef struct AVVDPAUContext | AVVDPAUContext |
| This structure is used to share data between the libavcodec library and the client video application. More... | |
Functions | |
| AVVDPAUContext * | av_alloc_vdpaucontext (void) |
| allocation function for AVVDPAUContext More... | |
| 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. 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... | |
| AVVDPAUContext * | av_vdpau_alloc_context (void) |
| Allocate an AVVDPAUContext. More... | |
| attribute_deprecated int | av_vdpau_get_profile (AVCodecContext *avctx, VdpDecoderProfile *profile) |
| Get a decoder profile that should be used for initializing a VDPAU decoder. More... | |
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.
| typedef struct AVVDPAUContext AVVDPAUContext |
This structure is used to share data between the libavcodec library and the client video application.
The user shall allocate the structure via the av_alloc_vdpau_hwaccel function and make it available as AVCodecContext.hwaccel_context. Members can be set by the user once during initialization or through each AVCodecContext.get_buffer() function call. In any case, they must be valid prior to calling decoding functions.
The size of this structure is not a part of the public ABI and must not be used outside of libavcodec. Use av_vdpau_alloc_context() to allocate an AVVDPAUContext.
| AVVDPAUContext* av_alloc_vdpaucontext | ( | void | ) |
allocation function for AVVDPAUContext
Allows extending the struct without breaking API/ABI
| AVVDPAUContext* av_vdpau_alloc_context | ( | void | ) |
Allocate an AVVDPAUContext.
| 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 |
| attribute_deprecated 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. |
| 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.
| 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) |
1.8.12