[FFmpeg-devel] [PATCH] lavc/vaapi_encode_av1: Always use slot 0 with 1 l0 ref

David Rosca nowrep at gmail.com
Mon Apr 14 17:04:38 EEST 2025


On Tue, Mar 4, 2025 at 8:43 AM David Rosca <nowrep at gmail.com> wrote:
>
> On Tue, Mar 4, 2025 at 2:55 AM Wang, Fei W
> <fei.w.wang-at-intel.com at ffmpeg.org> wrote:
> >
> > On Mon, 2025-03-03 at 14:47 +0100, David Rosca wrote:
> > > On Wed, Jan 15, 2025 at 10:41 PM David Rosca <nowrep at gmail.com>
> > > wrote:
> > > >
> > > > Don't need to alternate when only one reference is used.
> > > > Fixes fail after bf9f921ef7 ("avcodec/hw_base_encode: restrict size
> > > > of next_prev")
> > > > due to AV1 writer complaining about incorrect ref_order_hint value.
> > >
> > > Ping.
> >
> > Did you encode successful when ctx.base.ref_l0 equals to 1? There is an
> > error with this patch:
> >
> > $ ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -i input.mp4 -c:v
> > av1_vaapi -y out.mp4
> > ...
> > [av1_vaapi @ 0x6246182df640] frame_type does not match inferred value:
> > 1, but should be 0.
> > [av1_vaapi @ 0x6246182df640] Failed to write unit 0 (type 3).
> > [av1_vaapi @ 0x6246182df640] Failed to write packed header.
>
> I see, it's still broken for L0=1, L1=1 (also broken on master).
> This patch fixes it for L0=1, L1=0 only.

I've sent a new patch that should fix it.

>
> David
> >
> > Thanks
> > Fei
> >
> > >
> > > > ---
> > > >  libavcodec/vaapi_encode_av1.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/libavcodec/vaapi_encode_av1.c
> > > > b/libavcodec/vaapi_encode_av1.c
> > > > index 1b350cd936..aca6c26aa2 100644
> > > > --- a/libavcodec/vaapi_encode_av1.c
> > > > +++ b/libavcodec/vaapi_encode_av1.c
> > > > @@ -504,7 +504,7 @@ static int
> > > > vaapi_encode_av1_init_picture_params(AVCodecContext *avctx,
> > > >          fh->base_q_idx = priv->q_idx_p;
> > > >          ref = pic->refs[0][pic->nb_refs[0] - 1];
> > > >          href = ref->codec_priv;
> > > > -        hpic->slot = !href->slot;
> > > > +        hpic->slot = ctx->base.ref_l0 > 1 ? !href->slot : 0;
> > > >          hpic->last_idr_frame = href->last_idr_frame;
> > > >          fh->refresh_frame_flags = 1 << hpic->slot;
> > > >
> > > > --
> > > > 2.48.1
> > > >
> > > _______________________________________________
> > > ffmpeg-devel mailing list
> > > ffmpeg-devel at ffmpeg.org
> > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > >
> > > To unsubscribe, visit link above, or email
> > > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list