mirror of
https://github.com/nu774/fdkaac.git
synced 2025-06-05 23:29:14 +02:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
5e1168a4dd | |||
01993d6774 | |||
9ad6264b3c | |||
7db9e2768d |
@ -12,7 +12,7 @@ fdkaac_SOURCES = \
|
||||
src/wav_reader.c
|
||||
|
||||
fdkaac_LDADD = \
|
||||
@LIBICONV@ -lm
|
||||
@LIBICONV@ -lfdk-aac -lm
|
||||
|
||||
if FDK_PLATFORM_POSIX
|
||||
fdkaac_SOURCES += \
|
||||
@ -31,6 +31,10 @@ if FDK_NO_GETOPT_LONG
|
||||
endif
|
||||
|
||||
EXTRA_DIST = \
|
||||
m4/.gitkeep \
|
||||
src/*.h \
|
||||
missings/*.c \
|
||||
missings/*.h
|
||||
missings/*.h \
|
||||
MSVC/*.vcxproj \
|
||||
MSVC/*.vcxproj.filters \
|
||||
MSVC/*.sln
|
||||
|
@ -35,7 +35,7 @@ AC_FUNC_FSEEKO
|
||||
AC_CHECK_FUNCS([gettimeofday nl_langinfo strdup])
|
||||
AC_CHECK_FUNC(getopt_long)
|
||||
AM_CONDITIONAL([FDK_NO_GETOPT_LONG],[test "$ac_cv_func_getopt_long" != "yes"])
|
||||
AC_SEARCH_LIBS([aacEncOpen],[fdk-aac])
|
||||
AC_SEARCH_LIBS([aacEncOpen],[fdk-aac],[],[],[])
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
|
26
src/lpcm.c
26
src/lpcm.c
@ -34,6 +34,7 @@ inline int lrint(double x)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
static
|
||||
inline double pcm_clip(double n, double min_value, double max_value)
|
||||
{
|
||||
if (n < min_value)
|
||||
@ -42,6 +43,7 @@ inline double pcm_clip(double n, double min_value, double max_value)
|
||||
return max_value;
|
||||
return n;
|
||||
}
|
||||
static
|
||||
inline float pcm_i2f(int32_t n)
|
||||
{
|
||||
union {
|
||||
@ -51,6 +53,7 @@ inline float pcm_i2f(int32_t n)
|
||||
u.ivalue = n;
|
||||
return u.fvalue;
|
||||
}
|
||||
static
|
||||
inline double pcm_i2d(int64_t n)
|
||||
{
|
||||
union {
|
||||
@ -60,83 +63,103 @@ inline double pcm_i2d(int64_t n)
|
||||
u.ivalue = n;
|
||||
return u.fvalue;
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_quantize_s32(int32_t n)
|
||||
{
|
||||
n = ((n >> 15) + 1) >> 1;
|
||||
return (n == 0x8000) ? 0x7fff : n;
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_quantize_f64(double v)
|
||||
{
|
||||
return (int16_t)lrint(pcm_clip(v * 32768.0, -32768.0, 32767.0));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_s8_to_s16(int8_t n)
|
||||
{
|
||||
return n << 8;
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_u8_to_s16(uint8_t n)
|
||||
{
|
||||
return (n << 8) ^ 0x8000;
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_s16le_to_s16(int16_t n)
|
||||
{
|
||||
return m4af_ltoh16(n);
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_s16be_to_s16(int16_t n)
|
||||
{
|
||||
return m4af_btoh16(n);
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_u16le_to_s16(uint16_t n)
|
||||
{
|
||||
return m4af_ltoh16(n) ^ 0x8000;
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_u16be_to_s16(uint16_t n)
|
||||
{
|
||||
return m4af_btoh16(n) ^ 0x8000;
|
||||
}
|
||||
static
|
||||
inline int32_t pcm_s24le_to_s32(uint8_t *p)
|
||||
{
|
||||
return p[0]<<8 | p[1]<<16 | p[2]<<24;
|
||||
}
|
||||
static
|
||||
inline int32_t pcm_s24be_to_s32(uint8_t *p)
|
||||
{
|
||||
return p[0]<<24 | p[1]<<16 | p[2]<<8;
|
||||
}
|
||||
static
|
||||
inline int32_t pcm_u24le_to_s32(uint8_t *p)
|
||||
{
|
||||
return pcm_s24le_to_s32(p) ^ 0x80000000;
|
||||
}
|
||||
static
|
||||
inline int32_t pcm_u24be_to_s32(uint8_t *p)
|
||||
{
|
||||
return pcm_s24be_to_s32(p) ^ 0x80000000;
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_s24le_to_s16(uint8_t *p)
|
||||
{
|
||||
return pcm_quantize_s32(pcm_s24le_to_s32(p));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_s24be_to_s16(uint8_t *p)
|
||||
{
|
||||
return pcm_quantize_s32(pcm_s24be_to_s32(p));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_u24le_to_s16(uint8_t *p)
|
||||
{
|
||||
return pcm_quantize_s32(pcm_u24le_to_s32(p));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_u24be_to_s16(uint8_t *p)
|
||||
{
|
||||
return pcm_quantize_s32(pcm_u24be_to_s32(p));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_s32le_to_s16(int32_t n)
|
||||
{
|
||||
return pcm_quantize_s32(m4af_ltoh32(n));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_s32be_to_s16(int32_t n)
|
||||
{
|
||||
return pcm_quantize_s32(m4af_btoh32(n));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_u32le_to_s16(int32_t n)
|
||||
{
|
||||
return pcm_quantize_s32(m4af_ltoh32(n) ^ 0x80000000);
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_u32be_to_s16(int32_t n)
|
||||
{
|
||||
return pcm_quantize_s32(m4af_btoh32(n) ^ 0x80000000);
|
||||
@ -145,14 +168,17 @@ inline int16_t pcm_f32le_to_s16(int32_t n)
|
||||
{
|
||||
return pcm_quantize_f64(pcm_i2f(m4af_ltoh32(n)));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_f32be_to_s16(int32_t n)
|
||||
{
|
||||
return pcm_quantize_f64(pcm_i2f(m4af_btoh32(n)));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_f64le_to_s16(int64_t n)
|
||||
{
|
||||
return pcm_quantize_f64(pcm_i2d(m4af_ltoh64(n)));
|
||||
}
|
||||
static
|
||||
inline int16_t pcm_f64be_to_s16(int64_t n)
|
||||
{
|
||||
return pcm_quantize_f64(pcm_i2d(m4af_btoh64(n)));
|
||||
|
@ -33,13 +33,15 @@
|
||||
static
|
||||
int read_callback(void *cookie, void *data, uint32_t size)
|
||||
{
|
||||
return fread(data, 1, size, (FILE*)cookie);
|
||||
size_t rc = fread(data, 1, size, (FILE*)cookie);
|
||||
return ferror((FILE*)cookie) ? -1 : (int)rc;
|
||||
}
|
||||
|
||||
static
|
||||
int write_callback(void *cookie, const void *data, uint32_t size)
|
||||
{
|
||||
return fwrite(data, 1, size, (FILE*)cookie);
|
||||
size_t rc = fwrite(data, 1, size, (FILE*)cookie);
|
||||
return ferror((FILE*)cookie) ? -1 : (int)rc;
|
||||
}
|
||||
|
||||
static
|
||||
@ -297,7 +299,8 @@ int write_sample(FILE *ofp, m4af_writer_t *m4af,
|
||||
const void *data, uint32_t size, uint32_t duration)
|
||||
{
|
||||
if (!m4af) {
|
||||
if (fwrite(data, 1, size, ofp) < 0) {
|
||||
fwrite(data, 1, size, ofp);
|
||||
if (ferror(ofp)) {
|
||||
fprintf(stderr, "ERROR: fwrite(): %s\n", strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user