FFmpeg
|
#include <stddef.h>
#include <stdint.h>
#include "libavutil/attributes.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/libm.h"
#include "texturedsp.h"
#include "texturedsp_template.c"
Go to the source code of this file.
Macros | |
#define | RGBA(r, g, b, a) |
#define | TEXTUREDSP_FUNC_NAME ff_texturedsp_decompress_thread |
#define | TEXTUREDSP_TEX_FUNC(a, b, c) tex_funct(a, b, c) |
Functions | |
static av_always_inline void | extract_color (uint32_t colors[4], uint16_t color0, uint16_t color1, int dxtn, int alpha) |
static void | dxt1_block_internal (uint8_t *dst, ptrdiff_t stride, const uint8_t *block, uint8_t alpha) |
static int | dxt1_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a DXT1 texture and store the resulting RGBA pixels in 'dst'. More... | |
static int | dxt1a_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a DXT1 with 1-bit alpha texture and store the resulting RGBA pixels in 'dst'. More... | |
static void | dxt3_block_internal (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
static av_always_inline void | premult2straight (uint8_t *src) |
Convert a premultiplied alpha pixel to a straight alpha pixel. More... | |
static int | dxt2_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a DXT2 texture and store the resulting RGBA pixels in 'dst'. More... | |
static int | dxt3_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a DXT3 texture and store the resulting RGBA pixels in 'dst'. More... | |
static void | decompress_indices (uint8_t *dst, const uint8_t *src) |
Decompress a BC 16x3 index block stored as h g f e d c b a p o n m l k j i. More... | |
static void | dxt5_block_internal (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
static int | dxt4_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a DXT4 texture and store the resulting RGBA pixels in 'dst'. More... | |
static int | dxt5_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a DXT5 texture and store the resulting RGBA pixels in 'dst'. More... | |
static av_always_inline void | ycocg2rgba (uint8_t *src, int scaled) |
Convert a YCoCg buffer to RGBA. More... | |
static int | dxt5y_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a DXT5 texture with classic YCoCg and store the resulting RGBA pixels in 'dst'. More... | |
static int | dxt5ys_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a DXT5 texture with scaled YCoCg and store the resulting RGBA pixels in 'dst'. More... | |
static void | rgtc_block_internal (uint8_t *dst, ptrdiff_t stride, const uint8_t *block, const int *color_tab, int mono, int offset, int pix_size) |
static void | rgtc1_block_internal (uint8_t *dst, ptrdiff_t stride, const uint8_t *block, int sign, int mono, int offset, int pix_size) |
static int | rgtc1s_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a RGRC1 texture with signed components and store the resulting RGBA pixels in 'dst'. More... | |
static int | rgtc1u_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a RGRC1 texture with unsigned components and store the resulting RGBA pixels in 'dst'. More... | |
static int | rgtc1u_alpha_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a RGTC1 texture with unsigned components and overwrite the alpha component in 'dst' (RGBA data). More... | |
static int | rgtc1u_gray_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a RGTC1 texture with unsigned components to Gray 8. More... | |
static void | rgtc2_block_internal (uint8_t *dst, ptrdiff_t stride, const uint8_t *block, int sign) |
static int | rgtc2s_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a RGRC2 texture with signed components and store the resulting RGBA pixels in 'dst'. More... | |
static int | rgtc2u_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a RGRC2 texture with unsigned components and store the resulting RGBA pixels in 'dst'. More... | |
static int | dxn3dc_block (uint8_t *dst, ptrdiff_t stride, const uint8_t *block) |
Decompress one block of a 3Dc texture with unsigned components and store the resulting RGBA pixels in 'dst'. More... | |
av_cold void | ff_texturedsp_init (TextureDSPContext *c) |
#define TEXTUREDSP_FUNC_NAME ff_texturedsp_decompress_thread |
Definition at line 656 of file texturedsp.c.
Definition at line 657 of file texturedsp.c.
|
static |
Definition at line 40 of file texturedsp.c.
Referenced by dxt1_block_internal(), dxt3_block_internal(), and dxt5_block_internal().
|
inlinestatic |
Definition at line 85 of file texturedsp.c.
Referenced by dxt1_block(), and dxt1a_block().
|
static |
Decompress one block of a DXT1 texture and store the resulting RGBA pixels in 'dst'.
Alpha component is fully opaque.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 115 of file texturedsp.c.
Referenced by decode_rtv1(), and ff_texturedsp_init().
|
static |
Decompress one block of a DXT1 with 1-bit alpha texture and store the resulting RGBA pixels in 'dst'.
Alpha is either fully opaque or fully transparent.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 132 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
inlinestatic |
Definition at line 139 of file texturedsp.c.
Referenced by dxt2_block(), and dxt3_block().
|
static |
Convert a premultiplied alpha pixel to a straight alpha pixel.
Definition at line 171 of file texturedsp.c.
Referenced by dxt2_block(), and dxt4_block().
|
static |
Decompress one block of a DXT2 texture and store the resulting RGBA pixels in 'dst'.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 192 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress one block of a DXT3 texture and store the resulting RGBA pixels in 'dst'.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 216 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress a BC 16x3 index block stored as h g f e d c b a p o n m l k j i.
Bits packed as | h | g | f | e | d | c | b | a | // Entry |765 432 107 654 321 076 543 210| // Bit |0000000000111111111112222222222| // Byte
into 16 8-bit indices.
Definition at line 237 of file texturedsp.c.
Referenced by dxt5_block_internal(), and rgtc_block_internal().
|
inlinestatic |
Definition at line 253 of file texturedsp.c.
Referenced by dxt4_block(), dxt5_block(), dxt5y_block(), and dxt5ys_block().
|
static |
Decompress one block of a DXT4 texture and store the resulting RGBA pixels in 'dst'.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 311 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress one block of a DXT5 texture and store the resulting RGBA pixels in 'dst'.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 335 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Convert a YCoCg buffer to RGBA.
src | input buffer. |
scaled | variant with scaled chroma components and opaque alpha. |
Definition at line 348 of file texturedsp.c.
Referenced by dxt5y_block(), and dxt5ys_block().
|
static |
Decompress one block of a DXT5 texture with classic YCoCg and store the resulting RGBA pixels in 'dst'.
Alpha component is fully opaque.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 375 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress one block of a DXT5 texture with scaled YCoCg and store the resulting RGBA pixels in 'dst'.
Alpha component is fully opaque.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 399 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
inlinestatic |
Definition at line 414 of file texturedsp.c.
Referenced by rgtc1_block_internal().
|
inlinestatic |
Definition at line 444 of file texturedsp.c.
Referenced by rgtc1s_block(), rgtc1u_alpha_block(), rgtc1u_block(), rgtc1u_gray_block(), and rgtc2_block_internal().
|
static |
Decompress one block of a RGRC1 texture with signed components and store the resulting RGBA pixels in 'dst'.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 493 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress one block of a RGRC1 texture with unsigned components and store the resulting RGBA pixels in 'dst'.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 509 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress one block of a RGTC1 texture with unsigned components and overwrite the alpha component in 'dst' (RGBA data).
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 525 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress one block of a RGTC1 texture with unsigned components to Gray 8.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 541 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
inlinestatic |
Definition at line 548 of file texturedsp.c.
Referenced by dxn3dc_block(), rgtc2s_block(), and rgtc2u_block().
|
static |
Decompress one block of a RGRC2 texture with signed components and store the resulting RGBA pixels in 'dst'.
Alpha is fully opaque.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 589 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress one block of a RGRC2 texture with unsigned components and store the resulting RGBA pixels in 'dst'.
Alpha is fully opaque.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 605 of file texturedsp.c.
Referenced by ff_texturedsp_init().
|
static |
Decompress one block of a 3Dc texture with unsigned components and store the resulting RGBA pixels in 'dst'.
Alpha is fully opaque.
dst | output buffer. |
stride | scanline in bytes. |
block | block to decompress. |
Definition at line 621 of file texturedsp.c.
Referenced by ff_texturedsp_init().
av_cold void ff_texturedsp_init | ( | TextureDSPContext * | c | ) |
Definition at line 637 of file texturedsp.c.
Referenced by dds_decode(), decode_init(), dxv_init(), hap_init(), txd_decode_frame(), and vbn_init().