[FFmpeg-cvslog] libavcodec/texturedspenc : add rgtc1_u_alpha encoding func

Martin Vignali git at videolan.org
Mon Oct 16 17:35:27 EEST 2017


ffmpeg | branch: master | Martin Vignali <martin.vignali at gmail.com> | Thu Sep 28 21:37:46 2017 +0200| [50a20de6b9edd1d893fe0ea652ccf796dd9850fb] | committer: Tom Butterworth

libavcodec/texturedspenc : add rgtc1_u_alpha encoding func

this func encode the alpha channel of the rgba input
to an rgtc1u block

Signed-off-by: Tom Butterworth <bangnoise at gmail.com>

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

 libavcodec/texturedspenc.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/libavcodec/texturedspenc.c b/libavcodec/texturedspenc.c
index 8b2863033b..ae2e95e23f 100644
--- a/libavcodec/texturedspenc.c
+++ b/libavcodec/texturedspenc.c
@@ -647,9 +647,26 @@ static int dxt5ys_block(uint8_t *dst, ptrdiff_t stride, const uint8_t *block)
     return 16;
 }
 
+/**
+ * Compress one block of RGBA pixels in a RGTC1U texture and store the
+ * resulting bytes in 'dst'. Use the alpha channel of the input image.
+ *
+ * @param dst    output buffer.
+ * @param stride scanline in bytes.
+ * @param block  block to compress.
+ * @return how much texture data has been written.
+ */
+static int rgtc1u_alpha_block(uint8_t *dst, ptrdiff_t stride, const uint8_t *block)
+{
+    compress_alpha(dst, stride, block);
+
+    return 8;
+}
+
 av_cold void ff_texturedspenc_init(TextureDSPContext *c)
 {
     c->dxt1_block   = dxt1_block;
     c->dxt5_block   = dxt5_block;
     c->dxt5ys_block = dxt5ys_block;
+    c->rgtc1u_alpha_block = rgtc1u_alpha_block;
 }



More information about the ffmpeg-cvslog mailing list