[FFmpeg-cvslog] lavc/dxv: treat DXT5-tagged files as DXT4

Connor Worley git at videolan.org
Thu Feb 8 21:36:36 EET 2024


ffmpeg | branch: master | Connor Worley <connorbworley at gmail.com> | Thu Feb  8 11:07:09 2024 -0800| [3b6a515c5f8f97c9cc4e2cd7a99e12658813a512] | committer: Lynne

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 at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3b6a515c5f8f97c9cc4e2cd7a99e12658813a512
---

 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";



More information about the ffmpeg-cvslog mailing list