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?
Showing the changes to libavcodec (1 of 1 file). Show all
Unified · Split
| @@ -385,6 +385,9 @@ static int boundary_strength(const VVCLocalContext *lc, const MvField *curr, con · 384 unmodified lines | ||
| 385 | 385 | { |
| 386 | 386 | RefPicList *rpl = lc->sc->rpl; |
| 387 | 387 | |
| 388 | + if (curr->pred_flag == PF_PLT) | |
| 389 | + return 0; | |
| 390 | + | |
| 388 | 391 | if (curr->pred_flag == PF_IBC) |
| 389 | 392 | return FFABS(neigh->mv[0].x - curr->mv[0].x) >= 8 || FFABS(neigh->mv[0].y - curr->mv[0].y) >= 8; |
| 390 | 393 | |