Per H.266 (V3) section 7.4.3.19, LmcsMaxBinIdx is set equal to 15 - lmcs_delta_max_bin_idx. The previous code instead had it equal to 15 - lmcs_min_bin_idx. This could cause decoder mismatches.
Unified · Split
| @@ -742,7 +742,7 @@ static int lmcs_derive_lut(VVCLMCS *lmcs, const H266RawAPS *rlmcs, const H266Raw · 741 unmodified lines | ||
| 742 | 742 | return AVERROR_INVALIDDATA; |
| 743 | 743 | |
| 744 | 744 | lmcs->min_bin_idx = rlmcs->lmcs_min_bin_idx; |
| 745 | − lmcs->max_bin_idx = LMCS_MAX_BIN_SIZE - 1 - rlmcs->lmcs_min_bin_idx; | |
| 745 | + lmcs->max_bin_idx = LMCS_MAX_BIN_SIZE - 1 - rlmcs->lmcs_delta_max_bin_idx; | |
| 746 | 746 | |
| 747 | 747 | memset(cw, 0, sizeof(cw)); |
| 748 | 748 | for (int i = lmcs->min_bin_idx; i <= lmcs->max_bin_idx; i++) |