aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2014-03-20 08:53:17 +0100
committerAnton Khirnov <anton@khirnov.net>2014-03-20 17:00:39 +0100
commit1b1094a19d9e41baf3253c83841f9e5343cecbd0 (patch)
treeefd0f854f2f84824f2af500452a9232a8f714f0c
parent7948a51b5c3d08e1a1173442a7ff72b220def303 (diff)
downloadffmpeg-1b1094a19d9e41baf3253c83841f9e5343cecbd0.tar.gz
vdpau: switch ff_vdpau_get_surface_id from Picture to AVFrame
This gets rid of aliasing completely unrelated structs to Picture. Fixes the remaining compilation warnings in the vdpau code. Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r--libavcodec/vdpau.c2
-rw-r--r--libavcodec/vdpau_h264.c6
-rw-r--r--libavcodec/vdpau_internal.h6
-rw-r--r--libavcodec/vdpau_mpeg12.c4
-rw-r--r--libavcodec/vdpau_mpeg4.c4
-rw-r--r--libavcodec/vdpau_vc1.c4
6 files changed, 13 insertions, 13 deletions
diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c
index 5d83b449e8..5ad5d060b6 100644
--- a/libavcodec/vdpau.c
+++ b/libavcodec/vdpau.c
@@ -57,7 +57,7 @@ int ff_vdpau_mpeg_end_frame(AVCodecContext *avctx)
MpegEncContext *s = avctx->priv_data;
Picture *pic = s->current_picture_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);
hwctx->render(hwctx->decoder, surf, (void *)&pic_ctx->info,
pic_ctx->bitstream_buffers_used, pic_ctx->bitstream_buffers);
diff --git a/libavcodec/vdpau_h264.c b/libavcodec/vdpau_h264.c
index c71d6b8db3..7aa17efc29 100644
--- a/libavcodec/vdpau_h264.c
+++ b/libavcodec/vdpau_h264.c
@@ -50,7 +50,7 @@ static void vdpau_h264_clear_rf(VdpReferenceFrameH264 *rf)
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;
@@ -87,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) {
@@ -193,7 +193,7 @@ static int vdpau_h264_end_frame(AVCodecContext *avctx)
H264Context *h = avctx->priv_data;
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);
hwctx->render(hwctx->decoder, surf, (void *)&pic_ctx->info,
pic_ctx->bitstream_buffers_used, pic_ctx->bitstream_buffers);
diff --git a/libavcodec/vdpau_internal.h b/libavcodec/vdpau_internal.h
index 94c81ff78e..2443e0a911 100644
--- a/libavcodec/vdpau_internal.h
+++ b/libavcodec/vdpau_internal.h
@@ -31,10 +31,10 @@
#include "mpegvideo.h"
#include "version.h"
-/** Extract VdpVideoSurface from a Picture */
-static inline uintptr_t ff_vdpau_get_surface_id(Picture *pic)
+/** Extract VdpVideoSurface from an AVFrame */
+static inline uintptr_t ff_vdpau_get_surface_id(AVFrame *pic)
{
- return (uintptr_t)pic->f.data[3];
+ return (uintptr_t)pic->data[3];
}
#if !FF_API_BUFS_VDPAU
diff --git a/libavcodec/vdpau_mpeg12.c b/libavcodec/vdpau_mpeg12.c
index e62901adb1..0f92cef970 100644
--- a/libavcodec/vdpau_mpeg12.c
+++ b/libavcodec/vdpau_mpeg12.c
@@ -43,12 +43,12 @@ static int vdpau_mpeg_start_frame(AVCodecContext *avctx,
switch (s->pict_type) {
case AV_PICTURE_TYPE_B:
- ref = ff_vdpau_get_surface_id(&s->next_picture);
+ ref = ff_vdpau_get_surface_id(&s->next_picture.f);
assert(ref != VDP_INVALID_HANDLE);
info->backward_reference = ref;
/* fall through to forward prediction */
case AV_PICTURE_TYPE_P:
- ref = ff_vdpau_get_surface_id(&s->last_picture);
+ ref = ff_vdpau_get_surface_id(&s->last_picture.f);
info->forward_reference = ref;
}
diff --git a/libavcodec/vdpau_mpeg4.c b/libavcodec/vdpau_mpeg4.c
index f328e484ae..3c6c8b3f34 100644
--- a/libavcodec/vdpau_mpeg4.c
+++ b/libavcodec/vdpau_mpeg4.c
@@ -46,13 +46,13 @@ static int vdpau_mpeg4_start_frame(AVCodecContext *avctx,
switch (s->pict_type) {
case AV_PICTURE_TYPE_B:
- ref = ff_vdpau_get_surface_id(&s->next_picture);
+ ref = ff_vdpau_get_surface_id(&s->next_picture.f);
assert(ref != VDP_INVALID_HANDLE);
info->backward_reference = ref;
info->vop_coding_type = 2;
/* fall-through */
case AV_PICTURE_TYPE_P:
- ref = ff_vdpau_get_surface_id(&s->last_picture);
+ ref = ff_vdpau_get_surface_id(&s->last_picture.f);
assert(ref != VDP_INVALID_HANDLE);
info->forward_reference = ref;
}
diff --git a/libavcodec/vdpau_vc1.c b/libavcodec/vdpau_vc1.c
index 01ad0aebac..392c511ac8 100644
--- a/libavcodec/vdpau_vc1.c
+++ b/libavcodec/vdpau_vc1.c
@@ -44,12 +44,12 @@ static int vdpau_vc1_start_frame(AVCodecContext *avctx,
switch (s->pict_type) {
case AV_PICTURE_TYPE_B:
- ref = ff_vdpau_get_surface_id(&s->next_picture);
+ ref = ff_vdpau_get_surface_id(&s->next_picture.f);
assert(ref != VDP_INVALID_HANDLE);
info->backward_reference = ref;
/* fall-through */
case AV_PICTURE_TYPE_P:
- ref = ff_vdpau_get_surface_id(&s->last_picture);
+ ref = ff_vdpau_get_surface_id(&s->last_picture.f);
assert(ref != VDP_INVALID_HANDLE);
info->forward_reference = ref;
}