Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Conrad <david_conrad@apple.com>2022-06-08 01:05:50 +0300
committerDavid Conrad <david_conrad@apple.com>2022-09-15 03:28:22 +0300
commit2152826bc959466a8eea4b97d8249be634b26171 (patch)
treebdb2e83be8436c778c19b8d7c25c46d59506b6f0
parente202fa082b6699e60ec2806c067f34a82750b4fa (diff)
Fix chroma deblock filter size calculation for lossless
In section 5.11.34 txSz is always defined to TX_4X4 if Lossless is true Chroma deblock filter size calculation needs to use this overridden txSz when lossless is enabled
-rw-r--r--src/decode.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/decode.c b/src/decode.c
index 126a39e..35937e8 100644
--- a/src/decode.c
+++ b/src/decode.c
@@ -2087,11 +2087,14 @@ static int decode_b(Dav1dTaskContext *const t,
const uint8_t (*const lf_lvls)[8][2] = (const uint8_t (*)[8][2])
&ts->lflvl[b->seg_id][0][b->ref[0] + 1][!is_globalmv];
const uint16_t tx_split[2] = { b->tx_split0, b->tx_split1 };
+ enum RectTxfmSize ytx = b->max_ytx, uvtx = b->uvtx;
+ if (f->frame_hdr->segmentation.lossless[b->seg_id]) {
+ ytx = (enum RectTxfmSize) TX_4X4;
+ uvtx = (enum RectTxfmSize) TX_4X4;
+ }
dav1d_create_lf_mask_inter(t->lf_mask, f->lf.level, f->b4_stride, lf_lvls,
t->bx, t->by, f->w4, f->h4, b->skip, bs,
- f->frame_hdr->segmentation.lossless[b->seg_id] ?
- (enum RectTxfmSize) TX_4X4 : b->max_ytx,
- tx_split, b->uvtx, f->cur.p.layout,
+ ytx, tx_split, uvtx, f->cur.p.layout,
&t->a->tx_lpf_y[bx4], &t->l.tx_lpf_y[by4],
has_chroma ? &t->a->tx_lpf_uv[cbx4] : NULL,
has_chroma ? &t->l.tx_lpf_uv[cby4] : NULL);