You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
lavc/vaapi_hevc: Set correct rps type for scc
According to 8.1.3 and 8.3.2. Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com>
This commit is contained in:
@@ -71,6 +71,7 @@ static void fill_vaapi_pic(VAPictureHEVC *va_pic, const HEVCFrame *pic, int rps_
|
|||||||
static int find_frame_rps_type(const HEVCContext *h, const HEVCFrame *pic)
|
static int find_frame_rps_type(const HEVCContext *h, const HEVCFrame *pic)
|
||||||
{
|
{
|
||||||
VASurfaceID pic_surf = ff_vaapi_get_surface_id(pic->frame);
|
VASurfaceID pic_surf = ff_vaapi_get_surface_id(pic->frame);
|
||||||
|
const HEVCFrame *current_picture = h->ref;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < h->rps[ST_CURR_BEF].nb_refs; i++) {
|
for (i = 0; i < h->rps[ST_CURR_BEF].nb_refs; i++) {
|
||||||
@@ -88,6 +89,9 @@ static int find_frame_rps_type(const HEVCContext *h, const HEVCFrame *pic)
|
|||||||
return VA_PICTURE_HEVC_RPS_LT_CURR;
|
return VA_PICTURE_HEVC_RPS_LT_CURR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (h->ps.pps->pps_curr_pic_ref_enabled_flag && current_picture->poc == pic->poc)
|
||||||
|
return VA_PICTURE_HEVC_LONG_TERM_REFERENCE;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user