1
0
mirror of https://github.com/nu774/fdkaac.git synced 2025-06-05 23:29:14 +02:00

5 Commits

5 changed files with 41 additions and 7 deletions

View File

@ -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

View File

@ -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

View File

@ -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,99 +63,123 @@ 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);
}
static
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)));

View File

@ -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;
}

View File

@ -1,4 +1,4 @@
#ifndef VERSION_H
#define VERSION_H
const char *fdkaac_version = "0.0.5";
const char *fdkaac_version = "0.0.7";
#endif