[FFmpeg-devel] [PATCH v3 2/2] lavc/dxv: treat DXT5-tagged files as DXT4

Lynne dev at lynne.ee
Thu Feb 8 21:42:00 EET 2024


Feb 8, 2024, 20:07 by connorbworley at gmail.com:

> 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 at gmail.com>
> ---
>  libavcodec/dxv.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/dxv.c b/libavcodec/dxv.c
> index 5923811b29..1e6791e63f 100644
> --- a/libavcodec/dxv.c
> +++ b/libavcodec/dxv.c
> @@ -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";
>

Pushed along with the rest of the DXT patches.
Thanks.


More information about the ffmpeg-devel mailing list