X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fvdpau_h264.c;h=3bd7d8b2b99c86144cc532035c8426e51a067b76;hb=020baa0be64b460d48fecdfe13f1adabf6a293cd;hp=ea69c147f15d6e0ab9eb7070e4d036fe7d086047;hpb=8ccf21839ad8f3a3b551c98ffcca218a5f2aad68;p=ffmpeg diff --git a/libavcodec/vdpau_h264.c b/libavcodec/vdpau_h264.c index ea69c147f15..3bd7d8b2b99 100644 --- a/libavcodec/vdpau_h264.c +++ b/libavcodec/vdpau_h264.c @@ -25,6 +25,7 @@ #include "avcodec.h" #include "h264.h" +#include "mpegutils.h" #include "vdpau.h" #include "vdpau_internal.h" @@ -46,10 +47,10 @@ static void vdpau_h264_clear_rf(VdpReferenceFrameH264 *rf) rf->frame_idx = 0; } -static void vdpau_h264_set_rf(VdpReferenceFrameH264 *rf, Picture *pic, +static void vdpau_h264_set_rf(VdpReferenceFrameH264 *rf, H264Picture *pic, int pic_structure) { - VdpVideoSurface surface = ff_vdpau_get_surface_id(pic); + VdpVideoSurface surface = ff_vdpau_get_surface_id(&pic->f); if (pic_structure == 0) pic_structure = pic->reference; @@ -74,11 +75,11 @@ static void vdpau_h264_set_reference_frames(AVCodecContext *avctx) #define H264_RF_COUNT FF_ARRAY_ELEMS(info->referenceFrames) for (list = 0; list < 2; ++list) { - Picture **lp = list ? h->long_ref : h->short_ref; + H264Picture **lp = list ? h->long_ref : h->short_ref; int i, ls = list ? 16 : h->short_ref_count; for (i = 0; i < ls; ++i) { - Picture *pic = lp[i]; + H264Picture *pic = lp[i]; VdpReferenceFrameH264 *rf2; VdpVideoSurface surface_ref; int pic_frame_idx; @@ -86,7 +87,7 @@ static void vdpau_h264_set_reference_frames(AVCodecContext *avctx) if (!pic || !pic->reference) continue; pic_frame_idx = pic->long_ref ? pic->pic_id : pic->frame_num; - surface_ref = ff_vdpau_get_surface_id(pic); + surface_ref = ff_vdpau_get_surface_id(&pic->f); rf2 = &info->referenceFrames[0]; while (rf2 != rf) { @@ -118,7 +119,7 @@ static int vdpau_h264_start_frame(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size) { H264Context * const h = avctx->priv_data; - Picture *pic = h->cur_pic_ptr; + H264Picture *pic = h->cur_pic_ptr; struct vdpau_picture_context *pic_ctx = pic->hwaccel_picture_private; VdpPictureInfoH264 *info = &pic_ctx->info.h264; @@ -170,7 +171,7 @@ static int vdpau_h264_decode_slice(AVCodecContext *avctx, const uint8_t *buffer, uint32_t size) { H264Context *h = avctx->priv_data; - Picture *pic = h->cur_pic_ptr; + H264Picture *pic = h->cur_pic_ptr; struct vdpau_picture_context *pic_ctx = pic->hwaccel_picture_private; int val; @@ -191,9 +192,9 @@ static int vdpau_h264_end_frame(AVCodecContext *avctx) int res = 0; AVVDPAUContext *hwctx = avctx->hwaccel_context; H264Context *h = avctx->priv_data; - Picture *pic = h->cur_pic_ptr; + H264Picture *pic = h->cur_pic_ptr; struct vdpau_picture_context *pic_ctx = pic->hwaccel_picture_private; - VdpVideoSurface surf = ff_vdpau_get_surface_id(pic); + VdpVideoSurface surf = ff_vdpau_get_surface_id(&pic->f); #if FF_API_BUFS_VDPAU FF_DISABLE_DEPRECATION_WARNINGS