if (val < 0)
return val;
- hwctx->info = pic_ctx->info;
+#if FF_API_BUFS_VDPAU
+FF_DISABLE_DEPRECATION_WARNINGS
++ av_assert0(sizeof(hwctx->info) >= sizeof(pic_ctx->info));
++ memset(&hwctx->info, 0, sizeof(hwctx->info));
++ memcpy(&hwctx->info, &pic_ctx->info, sizeof(pic_ctx->info));
+ hwctx->bitstream_buffers = pic_ctx->bitstream_buffers;
+ hwctx->bitstream_buffers_used = pic_ctx->bitstream_buffers_used;
+ hwctx->bitstream_buffers_allocated = pic_ctx->bitstream_buffers_allocated;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
+
+ if (!hwctx->render && hwctx->render2) {
+ status = hwctx->render2(avctx, frame, (void *)&pic_ctx->info,
+ pic_ctx->bitstream_buffers_used, pic_ctx->bitstream_buffers);
+ } else
status = vdctx->render(vdctx->decoder, surf, (void *)&pic_ctx->info,
pic_ctx->bitstream_buffers_used,
pic_ctx->bitstream_buffers);
return (uintptr_t)pic->data[3];
}
- #if !FF_API_BUFS_VDPAU
- union AVVDPAUPictureInfo {
+struct vdpau_picture_context;
+#if CONFIG_VDPAU
+ union VDPAUPictureInfo {
VdpPictureInfoH264 h264;
VdpPictureInfoMPEG1Or2 mpeg;
VdpPictureInfoVC1 vc1;
VdpPictureInfoMPEG4Part2 mpeg4;
+ #ifdef VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE
+ VdpPictureInfoH264Predictive h264_predictive;
+ #endif
};
- #else
+
+#include "vdpau.h"
- #endif
+
typedef struct VDPAUHWContext {
AVVDPAUContext context;
VdpDevice device;