24 #ifndef AVCODEC_VDPAU_INTERNAL_H
25 #define AVCODEC_VDPAU_INTERNAL_H
30 #include <vdpau/vdpau.h>
40 return (uintptr_t)pic->
data[3];
43 struct vdpau_picture_context;
45 union VDPAUPictureInfo {
46 VdpPictureInfoH264 h264;
47 VdpPictureInfoMPEG1Or2 mpeg;
48 VdpPictureInfoVC1 vc1;
49 VdpPictureInfoMPEG4Part2 mpeg4;
50 #ifdef VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE
51 VdpPictureInfoH264Predictive h264_predictive;
53 #ifdef VDP_DECODER_PROFILE_HEVC_MAIN
54 VdpPictureInfoHEVC hevc;
60 typedef struct VDPAUHWContext {
63 VdpGetProcAddress *get_proc_address;
87 VdpDecoderRender *render;
93 struct vdpau_picture_context {
97 union VDPAUPictureInfo info;
102 int bitstream_buffers_allocated;
107 int bitstream_buffers_used;
112 VdpBitstreamBuffer *bitstream_buffers;
117 #endif //CONFIG_VDPAU
124 struct vdpau_picture_context *pic);
This structure describes decoded (raw) audio or video data.
int ff_vdpau_common_start_frame(struct vdpau_picture_context *pic, const uint8_t *buffer, uint32_t size)
Public libavcodec VDPAU header.
int ff_vdpau_common_uninit(AVCodecContext *avctx)
VdpGetProcAddress * get_proc_address
int ff_vdpau_common_init(AVCodecContext *avctx, VdpDecoderProfile profile, int level)
This structure is used to share data between the libavcodec library and the client video application...
reference-counted frame API
Libavcodec external API header.
int ff_vdpau_mpeg_end_frame(AVCodecContext *avctx)
main external API structure.
BYTE int const BYTE int int int height
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
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.