mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
vaapi: switch ff_vaapi_get_surface_id from Picture to AVFrame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
1b1094a19d
commit
8b6136d3d1
@ -205,7 +205,7 @@ int ff_vaapi_mpeg_end_frame(AVCodecContext *avctx)
|
||||
goto finish;
|
||||
|
||||
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)
|
||||
goto finish;
|
||||
|
||||
|
@ -59,7 +59,7 @@ static void fill_vaapi_pic(VAPictureH264 *va_pic,
|
||||
pic_structure = pic->reference;
|
||||
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->flags = 0;
|
||||
@ -99,7 +99,7 @@ static int dpb_add(DPB *dpb, H264Picture *pic)
|
||||
|
||||
for (i = 0; i < dpb->size; 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;
|
||||
fill_vaapi_pic(&temp_va_pic, pic, 0);
|
||||
|
||||
@ -298,7 +298,7 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
|
||||
if (ret < 0)
|
||||
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)
|
||||
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 */
|
||||
|
@ -73,10 +73,10 @@ static int vaapi_mpeg2_start_frame(AVCodecContext *avctx, av_unused const uint8_
|
||||
|
||||
switch (s->pict_type) {
|
||||
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
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -95,9 +95,9 @@ static int vaapi_mpeg4_start_frame(AVCodecContext *avctx, av_unused const uint8_
|
||||
pic_param->TRD = s->pp_time;
|
||||
|
||||
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)
|
||||
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 */
|
||||
/* 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) {
|
||||
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
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user