]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/vdpau_h264.c
Merge commit '1c1fbc70cae44c10af8ff865826e31c17bc9f347'
[ffmpeg] / libavcodec / vdpau_h264.c
index ea69c147f15d6e0ab9eb7070e4d036fe7d086047..3bd7d8b2b99c86144cc532035c8426e51a067b76 100644 (file)
@@ -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