Hi,

sorry in advance for any bad formatting in my reply from a phone.

Le mar. 6 janv. 2026, 03:13, 0xBat via ffmpeg-devel <[email protected]>
a écrit

> ---
>  libavcodec/vvc/ctu.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/libavcodec/vvc/ctu.c b/libavcodec/vvc/ctu.c
> index 18cbe0fe0f..8e4f003886 100644
> --- a/libavcodec/vvc/ctu.c
> +++ b/libavcodec/vvc/ctu.c
> @@ -1287,6 +1287,8 @@ static void derive_mmvd(const VVCLocalContext *lc,
> MvField *mvf, const Mv *mmvd_
>      if (mvf->pred_flag == PF_BI) {
>          const RefPicList *rpl = sc->rpl;
>          const int poc = lc->fc->ps.ph.poc;
> +        if (mvf->ref_idx[L0] >= rpl[L0].nb_refs || mvf->ref_idx[L1] >=
> rpl[L1].nb_refs)
> +            return;
>          const int diff[] = {
>              poc - rpl[L0].refs[mvf->ref_idx[L0]].poc,
>

Not a maintainer or contributor to the VVC decoder, but sounds fishy. That
a ref_idx is invalid, means that wherever it came from didn't validate
against the RPL. I don't know where mvf comes from, but if that's from the
current frame, it is extremely weird.

And by that I mean, the issue sounds like it should be caught earlier to
avoid it from propagating to other places.

Regards,
Christophe

> Christophe
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to