Signed-off-by: Anton Khirnov <anton@khirnov.net>tags/n2.3
| @@ -205,7 +205,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; | ||||
| @@ -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) | |||||
| 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); | ||||
| @@ -298,7 +298,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; | ||||
| @@ -35,10 +35,10 @@ | |||||
| * @{ | * @{ | ||||
| */ | */ | ||||
| /** Extract VASurfaceID from a Picture */ | |||||
| static inline VASurfaceID ff_vaapi_get_surface_id(Picture *pic) | |||||
| /** Extract VASurfaceID from an AVFrame */ | |||||
| static inline VASurfaceID ff_vaapi_get_surface_id(AVFrame *pic) | |||||
| { | { | ||||
| return (uintptr_t)pic->f.data[3]; | |||||
| return (uintptr_t)pic->data[3]; | |||||
| } | } | ||||
| /** Common AVHWAccel.end_frame() implementation */ | /** Common AVHWAccel.end_frame() implementation */ | ||||
| @@ -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_ | |||||
| 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 | |||||
| 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; | ||||
| } | } | ||||