* [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; 5+ 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] 5+ 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
2025-07-24 10:03 ` David Rosca
0 siblings, 1 reply; 5+ 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] 5+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
2025-06-05 12:17 ` David Rosca
@ 2025-07-24 10:03 ` David Rosca
2025-07-30 20:01 ` Dong, Ruijing via ffmpeg-devel
0 siblings, 1 reply; 5+ messages in thread
From: David Rosca @ 2025-07-24 10:03 UTC (permalink / raw)
To: ffmpeg-devel
On Thu, Jun 5, 2025 at 2:17 PM David Rosca <nowrep@gmail.com> wrote:
>
> 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
Ping again, this should go in before 8.0 release to fix the regression.
Thanks,
David
>
> > ---
> > 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] 5+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
2025-07-24 10:03 ` David Rosca
@ 2025-07-30 20:01 ` Dong, Ruijing via ffmpeg-devel
2025-08-03 22:26 ` Michael Niedermayer
0 siblings, 1 reply; 5+ messages in thread
From: Dong, Ruijing via ffmpeg-devel @ 2025-07-30 20:01 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Dong, Ruijing
[AMD Official Use Only - AMD Internal Distribution Only]
Without this fix, av1 vaapi encoding on navi3x (vcn4) is broken.
Thanks,
Ruijing
-----Original Message-----
From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of David Rosca
Sent: Thursday, July 24, 2025 6:04 AM
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
On Thu, Jun 5, 2025 at 2:17 PM David Rosca <nowrep@gmail.com> wrote:
>
> 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
Ping again, this should go in before 8.0 release to fix the regression.
Thanks,
David
>
> > ---
> > 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".
_______________________________________________
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] 5+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
2025-07-30 20:01 ` Dong, Ruijing via ffmpeg-devel
@ 2025-08-03 22:26 ` Michael Niedermayer
0 siblings, 0 replies; 5+ messages in thread
From: Michael Niedermayer @ 2025-08-03 22:26 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Dong, Ruijing, David Rosca
[-- Attachment #1.1: Type: text/plain, Size: 3554 bytes --]
Hi Ruijing, David
it seems theres no active maintainer for this
To move this patch forward, maybe you know someone who wants to
help with maintaince.
Or maybe AMD might be interrested in having one of their employees
officially maintain AMD related hw accelleration in ffmpeg ?
thx
On Wed, Jul 30, 2025 at 08:01:36PM +0000, Dong, Ruijing via ffmpeg-devel wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> Without this fix, av1 vaapi encoding on navi3x (vcn4) is broken.
>
> Thanks,
> Ruijing
>
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of David Rosca
> Sent: Thursday, July 24, 2025 6:04 AM
> To: ffmpeg-devel@ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Fix ref_order_hint value for second slot
>
> On Thu, Jun 5, 2025 at 2:17 PM David Rosca <nowrep@gmail.com> wrote:
> >
> > 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
>
> Ping again, this should go in before 8.0 release to fix the regression.
>
> Thanks,
> David
> >
> > > ---
> > > 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".
> _______________________________________________
> 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".
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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] 5+ messages in thread
end of thread, other threads:[~2025-08-03 22:26 UTC | newest]
Thread overview: 5+ 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
2025-07-24 10:03 ` David Rosca
2025-07-30 20:01 ` Dong, Ruijing via ffmpeg-devel
2025-08-03 22:26 ` Michael Niedermayer
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