|
|
@ -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; |
|
|
|
|
|
|
|
|
|
|
|