mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-12 09:17:53 +00:00
This commit and, by extension, PR attempts to update `stb` in the most straightforward way possible as well as include fixes from main repo's unmerged PRs for cases rearing their ugly heads during everyday usage: - stb#1299: stb_rect_pack: Make rect_height_compare a stable sort - stb#1402: stb_image: Fix "unused invalid_chunk" with STBI_FAILURE_USERMSG - stb#1404: stb_image: Fix gif two_back memory address - stb#1420: stb_image: Improve error reporting if file operations fail within *_from_file functions - stb#1445: stb_vorbis: Few static analyzers fixes - stb#1487: stb_vorbis: Fix residue classdata bounding for f->temp_memory_required - stb#1490: stb_vorbis: Fix broken clamp in codebook_decode_deinterleave_repeat - stb#1496: stb_image: Fix pnm only build - stb#1497: stb_image: Fix memory leaks if stbi__convert failed - stb#1498: stb_vorbis: Fix memory leaks in stb_vorbis - stb#1499: stb_vorbis: Minor change to prevent the undefined behavior - left shift of a negative value - stb#1500: stb_vorbis: Fix signed integer overflow Includes additional small fixes that I felt didn't warrant a separate PR.
34 lines
1.3 KiB
C
34 lines
1.3 KiB
C
#ifndef COSMOPOLITAN_DSP_CORE_CORE_H_
|
|
#define COSMOPOLITAN_DSP_CORE_CORE_H_
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
|
|
int alaw(int);
|
|
int unalaw(int);
|
|
int mulaw(int);
|
|
int unmulaw(int);
|
|
void *double2byte(long, const void *, double, double) vallocesque;
|
|
void *byte2double(long, const void *, double, double) vallocesque;
|
|
void *dct(float[restrict hasatleast 8][8], unsigned,
|
|
float, float, float, float, float);
|
|
void *dctjpeg(float[restrict hasatleast 8][8], unsigned);
|
|
double det3(const double[3][3]) nosideeffect;
|
|
void *inv3(double[restrict 3][3], const double[restrict 3][3], double);
|
|
void *matmul3(double[restrict 3][3], const double[3][3], const double[3][3]);
|
|
void *vmatmul3(double[restrict 3], const double[3], const double[3][3]);
|
|
void *matvmul3(double[restrict 3], const double[3][3], const double[3]);
|
|
double rgb2stdtv(double) pureconst;
|
|
double rgb2lintv(double) pureconst;
|
|
double rgb2stdpc(double, double) pureconst;
|
|
double rgb2linpc(double, double) pureconst;
|
|
double tv2pcgamma(double, double) pureconst;
|
|
|
|
#ifndef __cplusplus
|
|
void sad16x8n(size_t n, short[n][8], const short[n][8]);
|
|
void float2short(size_t n, short[n][8], const float[n][8]);
|
|
void scalevolume(size_t n, int16_t[n][8], int);
|
|
#endif
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_DSP_CORE_CORE_H_ */
|