lavc/dxv: treat DXT5-tagged files as DXT4

DXV files seem to misnomer DXT5 and really encode DXT4 with
premultiplied alpha. At least, this is what Resolume alley does.

To check, encode some input with alpha as "Normal Quality, With Alpha"
in Alley, then decode the output with this change -- results are true
to the original input compared to git-master.

Signed-off-by: Connor Worley <connorbworley@gmail.com>
This commit is contained in:
Connor Worley 2024-02-08 11:07:09 -08:00 committed by Lynne
parent c4e9556cf5
commit 3b6a515c5f
1 changed files with 2 additions and 1 deletions

View File

@ -1074,7 +1074,8 @@ static int dxv_decode(AVCodecContext *avctx, AVFrame *frame,
break;
case MKBETAG('D', 'X', 'T', '5'):
decompress_tex = dxv_decompress_dxt5;
ctx->tex_funct = ctx->texdsp.dxt5_block;
/* DXV misnomers DXT5, alpha is premultiplied so use DXT4 instead */
ctx->tex_funct = ctx->texdsp.dxt4_block;
ctx->tex_rat = 4;
ctx->tex_step = 16;
msgcomp = "DXTR5";