* [FFmpeg-devel] [PATCH 1/2] lavc/texturedsp: fix premult2straight inversion
@ 2024-02-02 0:33 Connor Worley
2024-02-02 0:34 ` [FFmpeg-devel] [PATCH 2/2] lavc/dxv: treat DXT5-tagged files as DXT4 Connor Worley
0 siblings, 1 reply; 3+ messages in thread
From: Connor Worley @ 2024-02-02 0:33 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Connor Worley
This function should convert premultiplied alpha to straight, but does the opposite.
Signed-off-by: Connor Worley <connorbworley@gmail.com>
---
libavcodec/texturedsp.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavcodec/texturedsp.c b/libavcodec/texturedsp.c
index 5fb79937da..1b8237e9f7 100644
--- a/libavcodec/texturedsp.c
+++ b/libavcodec/texturedsp.c
@@ -175,9 +175,9 @@ static av_always_inline void premult2straight(uint8_t *src)
int b = src[2];
int a = src[3]; /* unchanged */
- src[0] = (uint8_t) r * a / 255;
- src[1] = (uint8_t) g * a / 255;
- src[2] = (uint8_t) b * a / 255;
+ src[0] = (uint8_t) FFMIN(r * 255 / a, 255);
+ src[1] = (uint8_t) FFMIN(g * 255 / a, 255);
+ src[2] = (uint8_t) FFMIN(b * 255 / a, 255);
}
/**
--
2.40.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
* [FFmpeg-devel] [PATCH 2/2] lavc/dxv: treat DXT5-tagged files as DXT4
2024-02-02 0:33 [FFmpeg-devel] [PATCH 1/2] lavc/texturedsp: fix premult2straight inversion Connor Worley
@ 2024-02-02 0:34 ` Connor Worley
2024-02-02 0:53 ` Connor Worley
0 siblings, 1 reply; 3+ messages in thread
From: Connor Worley @ 2024-02-02 0:34 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Connor Worley
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>
---
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";
--
2.40.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-02-02 0:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-02 0:33 [FFmpeg-devel] [PATCH 1/2] lavc/texturedsp: fix premult2straight inversion Connor Worley
2024-02-02 0:34 ` [FFmpeg-devel] [PATCH 2/2] lavc/dxv: treat DXT5-tagged files as DXT4 Connor Worley
2024-02-02 0:53 ` Connor Worley
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git