You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
lavc/vvc: Avoid UB in DB strength derivation for PLT CUs
When called for palette-predicted CUs, boundary_strength could cause undefined behaviour due to accessing uninitialised motion information. The spec doesn't include this, but in the reference software it seems the deblock strength is always set to 0 for palette CUs due to some implementation details: perhaps this is a spec issue? Signed-off-by: Frank Plowman <post@frankplowman.com>
This commit is contained in:
@@ -385,6 +385,9 @@ static int boundary_strength(const VVCLocalContext *lc, const MvField *curr, con
|
|||||||
{
|
{
|
||||||
RefPicList *rpl = lc->sc->rpl;
|
RefPicList *rpl = lc->sc->rpl;
|
||||||
|
|
||||||
|
if (curr->pred_flag == PF_PLT)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (curr->pred_flag == PF_IBC)
|
if (curr->pred_flag == PF_IBC)
|
||||||
return FFABS(neigh->mv[0].x - curr->mv[0].x) >= 8 || FFABS(neigh->mv[0].y - curr->mv[0].y) >= 8;
|
return FFABS(neigh->mv[0].x - curr->mv[0].x) >= 8 || FFABS(neigh->mv[0].y - curr->mv[0].y) >= 8;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user