[FFmpeg-cvslog] avcodec/vvc decode: ALF filtering without CC-ALF
Chris Warrington
git at videolan.org
Sun Jan 5 12:35:46 EET 2025
ffmpeg | branch: master | Chris Warrington <cwarrington at synamedia.com> | Mon Dec 2 14:27:12 2024 +0000| [f80af3657f162ba79b872bc27ae06d75560d58a9] | committer: Nuo Mi
avcodec/vvc decode: ALF filtering without CC-ALF
When a stream has ALF filtering enabled but not CC-ALF, the CC-ALF set indexes alf->ctb_cc_idc are being read uninitialized during ALF filtering.
This change initializes alf->ctb_cc_idc whenever ALF is enabled.
Ref. https://trac.ffmpeg.org/ticket/11325
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f80af3657f162ba79b872bc27ae06d75560d58a9
---
libavcodec/vvc/ctu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/vvc/ctu.c b/libavcodec/vvc/ctu.c
index f80bce637c..83864c5d98 100644
--- a/libavcodec/vvc/ctu.c
+++ b/libavcodec/vvc/ctu.c
@@ -2294,6 +2294,7 @@ static void alf_params(VVCLocalContext *lc, const int rx, const int ry)
ALFParams *alf = &CTB(fc->tab.alf, rx, ry);
alf->ctb_flag[LUMA] = alf->ctb_flag[CB] = alf->ctb_flag[CR] = 0;
+ alf->ctb_cc_idc[0] = alf->ctb_cc_idc[1] = 0;
if (sh->sh_alf_enabled_flag) {
alf->ctb_flag[LUMA] = ff_vvc_alf_ctb_flag(lc, rx, ry, LUMA);
if (alf->ctb_flag[LUMA]) {
@@ -2324,7 +2325,6 @@ static void alf_params(VVCLocalContext *lc, const int rx, const int ry)
const uint8_t cc_enabled[] = { sh->sh_alf_cc_cb_enabled_flag, sh->sh_alf_cc_cr_enabled_flag };
const uint8_t cc_aps_id[] = { sh->sh_alf_cc_cb_aps_id, sh->sh_alf_cc_cr_aps_id };
for (int i = 0; i < 2; i++) {
- alf->ctb_cc_idc[i] = 0;
if (cc_enabled[i]) {
const VVCALF *aps = fc->ps.alf_list[cc_aps_id[i]];
alf->ctb_cc_idc[i] = ff_vvc_alf_ctb_cc_idc(lc, rx, ry, i, aps->num_cc_filters[i]);
More information about the ffmpeg-cvslog
mailing list