24 #ifndef AVCODEC_VDPAU_INTERNAL_H 25 #define AVCODEC_VDPAU_INTERNAL_H 28 #include <vdpau/vdpau.h> 40 return (uintptr_t)pic->
data[3];
45 VdpPictureInfoMPEG1Or2
mpeg;
46 VdpPictureInfoVC1
vc1;
48 #ifdef VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE 49 VdpPictureInfoH264Predictive h264_predictive;
51 #ifdef VDP_DECODER_PROFILE_HEVC_MAIN 52 VdpPictureInfoHEVC hevc;
54 #ifdef VDP_YCBCR_FORMAT_Y_U_V_444 55 VdpPictureInfoHEVC444 hevc_444;
57 #ifdef VDP_DECODER_PROFILE_VP9_PROFILE_0 58 VdpPictureInfoVP9 vp9;
This structure describes decoded (raw) audio or video data.
VdpDevice device
VDPAU device handle.
VdpGetProcAddress * get_proc_address
VdpDecoder decoder
VDPAU decoder handle.
int ff_vdpau_common_start_frame(struct vdpau_picture_context *pic, const uint8_t *buffer, uint32_t size)
int bitstream_buffers_used
Useful bitstream buffers in the bitstream buffers table.
Public libavcodec VDPAU header.
An API-specific header for AV_HWDEVICE_TYPE_VDPAU.
VdpBitstreamBuffer * bitstream_buffers
Table of bitstream buffers.
int ff_vdpau_common_uninit(AVCodecContext *avctx)
VdpGetProcAddress * get_proc_address
VDPAU device driver.
int ff_vdpau_common_init(AVCodecContext *avctx, VdpDecoderProfile profile, int level)
VdpPictureInfoMPEG4Part2 mpeg4
This structure is used to share data between the libavcodec library and the client video application...
VdpPictureInfoMPEG1Or2 mpeg
int bitstream_buffers_allocated
Allocated size of the bitstream_buffers table.
reference-counted frame API
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
int ff_vdpau_common_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx)
Libavcodec external API header.
int ff_vdpau_mpeg_end_frame(AVCodecContext *avctx)
main external API structure.
VdpDecoderRender * render
VDPAU decoder render callback.
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
A reference to a data buffer.
int ff_vdpau_add_buffer(struct vdpau_picture_context *pic, const uint8_t *buf, uint32_t buf_size)
int ff_vdpau_common_end_frame(AVCodecContext *avctx, AVFrame *frame, struct vdpau_picture_context *pic)
static uintptr_t ff_vdpau_get_surface_id(AVFrame *pic)
Extract VdpVideoSurface from an AVFrame.