24 #include <vdpau/vdpau.h>
36 VdpPictureInfoMPEG1Or2 *info = &pic_ctx->info.mpeg;
41 info->forward_reference = VDP_INVALID_HANDLE;
42 info->backward_reference = VDP_INVALID_HANDLE;
47 assert(ref != VDP_INVALID_HANDLE);
48 info->backward_reference = ref;
52 info->forward_reference = ref;
55 info->slice_count = 0;
66 info->full_pel_forward_vector = s->
full_pel[0];
67 info->full_pel_backward_vector = s->
full_pel[1];
73 for (i = 0; i < 64; ++i) {
75 info->non_intra_quantizer_matrix[i] = s->
inter_matrix[i];
93 pic_ctx->info.mpeg.slice_count++;
97 #if CONFIG_MPEG1_VDPAU_HWACCEL
99 .
name =
"mpeg1_vdpau",
106 .priv_data_size =
sizeof(
struct vdpau_picture_context),
110 #if CONFIG_MPEG2_VDPAU_HWACCEL
112 .
name =
"mpeg2_vdpau",
119 .priv_data_size =
sizeof(
struct vdpau_picture_context),
const char const char void * val
static int vdpau_mpeg_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)
int ff_vdpau_common_start_frame(Picture *pic, av_unused const uint8_t *buffer, av_unused uint32_t size)
static uintptr_t ff_vdpau_get_surface_id(Picture *pic)
Extract VdpVideoSurface from a Picture.
Libavcodec external API header.
Picture * current_picture_ptr
pointer to the current picture
void * hwaccel_picture_private
hardware accelerator private data
const char * name
Name of the hardware accelerated codec.
preferred ID for MPEG-1/2 video decoding
uint16_t inter_matrix[64]
int concealment_motion_vectors
int ff_vdpau_mpeg_end_frame(AVCodecContext *avctx)
main external API structure.
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ...
Public libavcodec VDPAU header.
Picture last_picture
copy of the previous picture structure.
int ff_vdpau_add_buffer(Picture *pic, const uint8_t *buf, uint32_t size)
Picture next_picture
copy of the next picture structure.
HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface.
uint16_t intra_matrix[64]
matrix transmitted in the bitstream
static int vdpau_mpeg_start_frame(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size)