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>tags/n2.3
| @@ -57,7 +57,7 @@ int ff_vdpau_mpeg_end_frame(AVCodecContext *avctx) | |||||
| MpegEncContext *s = avctx->priv_data; | MpegEncContext *s = avctx->priv_data; | ||||
| Picture *pic = s->current_picture_ptr; | Picture *pic = s->current_picture_ptr; | ||||
| struct vdpau_picture_context *pic_ctx = pic->hwaccel_picture_private; | 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, | hwctx->render(hwctx->decoder, surf, (void *)&pic_ctx->info, | ||||
| pic_ctx->bitstream_buffers_used, pic_ctx->bitstream_buffers); | pic_ctx->bitstream_buffers_used, pic_ctx->bitstream_buffers); | ||||
| @@ -50,7 +50,7 @@ static void vdpau_h264_clear_rf(VdpReferenceFrameH264 *rf) | |||||
| static void vdpau_h264_set_rf(VdpReferenceFrameH264 *rf, H264Picture *pic, | static void vdpau_h264_set_rf(VdpReferenceFrameH264 *rf, H264Picture *pic, | ||||
| int pic_structure) | int pic_structure) | ||||
| { | { | ||||
| VdpVideoSurface surface = ff_vdpau_get_surface_id(pic); | |||||
| VdpVideoSurface surface = ff_vdpau_get_surface_id(&pic->f); | |||||
| if (pic_structure == 0) | if (pic_structure == 0) | ||||
| pic_structure = pic->reference; | pic_structure = pic->reference; | ||||
| @@ -87,7 +87,7 @@ static void vdpau_h264_set_reference_frames(AVCodecContext *avctx) | |||||
| if (!pic || !pic->reference) | if (!pic || !pic->reference) | ||||
| continue; | continue; | ||||
| pic_frame_idx = pic->long_ref ? pic->pic_id : pic->frame_num; | 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]; | rf2 = &info->referenceFrames[0]; | ||||
| while (rf2 != rf) { | while (rf2 != rf) { | ||||
| @@ -193,7 +193,7 @@ static int vdpau_h264_end_frame(AVCodecContext *avctx) | |||||
| H264Context *h = avctx->priv_data; | H264Context *h = avctx->priv_data; | ||||
| H264Picture *pic = h->cur_pic_ptr; | H264Picture *pic = h->cur_pic_ptr; | ||||
| struct vdpau_picture_context *pic_ctx = pic->hwaccel_picture_private; | 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, | hwctx->render(hwctx->decoder, surf, (void *)&pic_ctx->info, | ||||
| pic_ctx->bitstream_buffers_used, pic_ctx->bitstream_buffers); | pic_ctx->bitstream_buffers_used, pic_ctx->bitstream_buffers); | ||||
| @@ -31,10 +31,10 @@ | |||||
| #include "mpegvideo.h" | #include "mpegvideo.h" | ||||
| #include "version.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 | #if !FF_API_BUFS_VDPAU | ||||
| @@ -43,12 +43,12 @@ static int vdpau_mpeg_start_frame(AVCodecContext *avctx, | |||||
| switch (s->pict_type) { | switch (s->pict_type) { | ||||
| case AV_PICTURE_TYPE_B: | 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); | assert(ref != VDP_INVALID_HANDLE); | ||||
| info->backward_reference = ref; | info->backward_reference = ref; | ||||
| /* fall through to forward prediction */ | /* fall through to forward prediction */ | ||||
| case AV_PICTURE_TYPE_P: | 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; | info->forward_reference = ref; | ||||
| } | } | ||||
| @@ -46,13 +46,13 @@ static int vdpau_mpeg4_start_frame(AVCodecContext *avctx, | |||||
| switch (s->pict_type) { | switch (s->pict_type) { | ||||
| case AV_PICTURE_TYPE_B: | 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); | assert(ref != VDP_INVALID_HANDLE); | ||||
| info->backward_reference = ref; | info->backward_reference = ref; | ||||
| info->vop_coding_type = 2; | info->vop_coding_type = 2; | ||||
| /* fall-through */ | /* fall-through */ | ||||
| case AV_PICTURE_TYPE_P: | 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); | assert(ref != VDP_INVALID_HANDLE); | ||||
| info->forward_reference = ref; | info->forward_reference = ref; | ||||
| } | } | ||||
| @@ -44,12 +44,12 @@ static int vdpau_vc1_start_frame(AVCodecContext *avctx, | |||||
| switch (s->pict_type) { | switch (s->pict_type) { | ||||
| case AV_PICTURE_TYPE_B: | 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); | assert(ref != VDP_INVALID_HANDLE); | ||||
| info->backward_reference = ref; | info->backward_reference = ref; | ||||
| /* fall-through */ | /* fall-through */ | ||||
| case AV_PICTURE_TYPE_P: | 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); | assert(ref != VDP_INVALID_HANDLE); | ||||
| info->forward_reference = ref; | info->forward_reference = ref; | ||||
| } | } | ||||