* [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
@ 2025-04-14 13:59 David Rosca
2025-06-05 12:17 ` David Rosca
0 siblings, 1 reply; 2+ messages in thread
From: David Rosca @ 2025-04-14 13:59 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: David Rosca
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 bf9f921ef7 ("avcodec/hw_base_encode: restrict size of next_prev")
---
libavcodec/vaapi_encode_av1.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libavcodec/vaapi_encode_av1.c b/libavcodec/vaapi_encode_av1.c
index 1b350cd936..cf0ff53edc 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:
--
2.49.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
2025-04-14 13:59 [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot David Rosca
@ 2025-06-05 12:17 ` David Rosca
0 siblings, 0 replies; 2+ messages in thread
From: David Rosca @ 2025-06-05 12:17 UTC (permalink / raw)
To: ffmpeg-devel
On Mon, Apr 14, 2025 at 4:00 PM David Rosca <nowrep@gmail.com> wrote:
>
> 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 bf9f921ef7 ("avcodec/hw_base_encode: restrict size of next_prev")
Ping
> ---
> libavcodec/vaapi_encode_av1.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/libavcodec/vaapi_encode_av1.c b/libavcodec/vaapi_encode_av1.c
> index 1b350cd936..cf0ff53edc 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:
> --
> 2.49.0
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-06-05 12:18 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-14 13:59 [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot David Rosca
2025-06-05 12:17 ` David Rosca
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git