Commit 377cfc28 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/vaapi: fix pointer types after H264Picture changes

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 9517900b
...@@ -59,7 +59,7 @@ static void fill_vaapi_pic(VAPictureH264 *va_pic, ...@@ -59,7 +59,7 @@ static void fill_vaapi_pic(VAPictureH264 *va_pic,
pic_structure = pic->reference; pic_structure = pic->reference;
pic_structure &= PICT_FRAME; /* PICT_TOP_FIELD|PICT_BOTTOM_FIELD */ pic_structure &= PICT_FRAME; /* PICT_TOP_FIELD|PICT_BOTTOM_FIELD */
va_pic->picture_id = ff_vaapi_get_surface_id(pic); va_pic->picture_id = ff_vaapi_get_surface_id(&pic->f);
va_pic->frame_idx = pic->long_ref ? pic->pic_id : pic->frame_num; va_pic->frame_idx = pic->long_ref ? pic->pic_id : pic->frame_num;
va_pic->flags = 0; va_pic->flags = 0;
...@@ -99,7 +99,7 @@ static int dpb_add(DPB *dpb, H264Picture *pic) ...@@ -99,7 +99,7 @@ static int dpb_add(DPB *dpb, H264Picture *pic)
for (i = 0; i < dpb->size; i++) { for (i = 0; i < dpb->size; i++) {
VAPictureH264 * const va_pic = &dpb->va_pics[i]; VAPictureH264 * const va_pic = &dpb->va_pics[i];
if (va_pic->picture_id == ff_vaapi_get_surface_id(pic)) { if (va_pic->picture_id == ff_vaapi_get_surface_id(&pic->f)) {
VAPictureH264 temp_va_pic; VAPictureH264 temp_va_pic;
fill_vaapi_pic(&temp_va_pic, pic, 0); fill_vaapi_pic(&temp_va_pic, pic, 0);
...@@ -299,7 +299,7 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx) ...@@ -299,7 +299,7 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
if (ret < 0) if (ret < 0)
goto finish; goto finish;
ret = ff_vaapi_render_picture(vactx, ff_vaapi_get_surface_id(h->cur_pic_ptr)); ret = ff_vaapi_render_picture(vactx, ff_vaapi_get_surface_id(&h->cur_pic_ptr->f));
if (ret < 0) if (ret < 0)
goto finish; goto finish;
......
...@@ -36,9 +36,9 @@ ...@@ -36,9 +36,9 @@
*/ */
/** Extract VASurfaceID from a Picture */ /** Extract VASurfaceID from a Picture */
static inline VASurfaceID ff_vaapi_get_surface_id(Picture *pic) static inline VASurfaceID ff_vaapi_get_surface_id(AVFrame *frm)
{ {
return (uintptr_t)pic->f.data[3]; return (uintptr_t)frm->data[3];
} }
/** Common AVHWAccel.end_frame() implementation */ /** Common AVHWAccel.end_frame() implementation */
......
...@@ -35,7 +35,7 @@ int ff_vaapi_mpeg_end_frame(AVCodecContext *avctx) ...@@ -35,7 +35,7 @@ int ff_vaapi_mpeg_end_frame(AVCodecContext *avctx)
goto finish; goto finish;
ret = ff_vaapi_render_picture(vactx, ret = ff_vaapi_render_picture(vactx,
ff_vaapi_get_surface_id(s->current_picture_ptr)); ff_vaapi_get_surface_id(&s->current_picture_ptr->f));
if (ret < 0) if (ret < 0)
goto finish; goto finish;
......
...@@ -73,10 +73,10 @@ static int vaapi_mpeg2_start_frame(AVCodecContext *avctx, av_unused const uint8_ ...@@ -73,10 +73,10 @@ static int vaapi_mpeg2_start_frame(AVCodecContext *avctx, av_unused const uint8_
switch (s->pict_type) { switch (s->pict_type) {
case AV_PICTURE_TYPE_B: case AV_PICTURE_TYPE_B:
pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture); pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture.f);
// fall-through // fall-through
case AV_PICTURE_TYPE_P: case AV_PICTURE_TYPE_P:
pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture); pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture.f);
break; break;
} }
......
...@@ -95,9 +95,9 @@ static int vaapi_mpeg4_start_frame(AVCodecContext *avctx, av_unused const uint8_ ...@@ -95,9 +95,9 @@ static int vaapi_mpeg4_start_frame(AVCodecContext *avctx, av_unused const uint8_
pic_param->TRD = s->pp_time; pic_param->TRD = s->pp_time;
if (s->pict_type == AV_PICTURE_TYPE_B) if (s->pict_type == AV_PICTURE_TYPE_B)
pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture); pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture.f);
if (s->pict_type != AV_PICTURE_TYPE_I) if (s->pict_type != AV_PICTURE_TYPE_I)
pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture); pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture.f);
/* Fill in VAIQMatrixBufferMPEG4 */ /* Fill in VAIQMatrixBufferMPEG4 */
/* Only the first inverse quantisation method uses the weighting matrices */ /* Only the first inverse quantisation method uses the weighting matrices */
......
...@@ -258,10 +258,10 @@ static int vaapi_vc1_start_frame(AVCodecContext *avctx, av_unused const uint8_t ...@@ -258,10 +258,10 @@ static int vaapi_vc1_start_frame(AVCodecContext *avctx, av_unused const uint8_t
switch (s->pict_type) { switch (s->pict_type) {
case AV_PICTURE_TYPE_B: case AV_PICTURE_TYPE_B:
pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture); pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture.f);
// fall-through // fall-through
case AV_PICTURE_TYPE_P: case AV_PICTURE_TYPE_P:
pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture); pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture.f);
break; break;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment