aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/vaapi_encode_av1.c
diff options
context:
space:
mode:
authorDavid Rosca <nowrep@gmail.com>2025-01-15 22:34:05 +0100
committerLynne <dev@lynne.ee>2025-08-08 13:14:07 +0000
commit814dd634e0ae417425a221f612198f91c7fc8c52 (patch)
tree22284a9534c4634ac6a840305bcb196fef98ae37 /libavcodec/vaapi_encode_av1.c
parent523134587ad86959ad03bbbabcca841d64d9ed8c (diff)
downloadffmpeg-814dd634e0ae417425a221f612198f91c7fc8c52.tar.gz
lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
We always use two slots, even when only one L0 reference is supported by the driver. However we still need to set the correct value for the ref_order_hint of the second slot. Fixes regression from bf9f921ef7 ("avcodec/hw_base_encode: restrict size of next_prev")
Diffstat (limited to 'libavcodec/vaapi_encode_av1.c')
-rw-r--r--libavcodec/vaapi_encode_av1.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/vaapi_encode_av1.c b/libavcodec/vaapi_encode_av1.c
index f3df5baddc..3d8f29d599 100644
--- a/libavcodec/vaapi_encode_av1.c
+++ b/libavcodec/vaapi_encode_av1.c
@@ -476,6 +476,7 @@ static int vaapi_encode_av1_init_picture_params(AVCodecContext *avctx,
AV1RawFrameHeader *fh = &fh_obu->obu.frame.header;
VAEncPictureParameterBufferAV1 *vpic = vaapi_pic->codec_picture_params;
CodedBitstreamFragment *obu = &priv->current_obu;
+ CodedBitstreamAV1Context *cbctx = priv->cbc->priv_data;
FFHWBaseEncodePicture *ref;
VAAPIEncodeAV1Picture *href;
int slot, i;
@@ -523,6 +524,8 @@ static int vaapi_encode_av1_init_picture_params(AVCodecContext *avctx,
fh->ref_frame_idx[3] = href->slot;
fh->ref_order_hint[href->slot] = ref->display_order - href->last_idr_frame;
vpic->ref_frame_ctrl_l0.fields.search_idx1 = AV1_REF_FRAME_GOLDEN;
+ } else {
+ fh->ref_order_hint[!href->slot] = cbctx->ref[!href->slot].order_hint;
}
break;
case FF_HW_PICTURE_TYPE_B: