mirror of https://github.com/nu774/fdkaac.git
Compare commits
17 Commits
Author | SHA1 | Date |
---|---|---|
|
98d90e76d6 | |
|
2dd2b3c61b | |
|
746e85538b | |
|
594c26b960 | |
|
a71453bc9a | |
|
11f6ac1665 | |
|
7291661fdc | |
|
2dc1ef46e1 | |
|
f95566ee8e | |
|
d705c888cf | |
|
31e62aa51c | |
|
2ed6139278 | |
|
4037c42577 | |
|
4f35b8ad7c | |
|
3bf454a5a3 | |
|
22dbf72491 | |
|
03c3c60191 |
|
@ -0,0 +1,109 @@
|
||||||
|
name: CI
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
linux:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
version: [20.04, 22.04]
|
||||||
|
runs-on: ubuntu-${{ matrix.version }}
|
||||||
|
steps:
|
||||||
|
- name: Install libfdk-aac
|
||||||
|
run: |
|
||||||
|
sudo apt install libfdk-aac-dev
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
autoreconf -fiv
|
||||||
|
./configure
|
||||||
|
make -j2
|
||||||
|
sudo make install
|
||||||
|
- name: Test
|
||||||
|
run: |
|
||||||
|
fdkaac -b 128 -R -o /dev/null /dev/null
|
||||||
|
|
||||||
|
mingw-cross:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [i686, x86_64]
|
||||||
|
include:
|
||||||
|
- arch: i686
|
||||||
|
os: mingw32
|
||||||
|
- arch: x86_64
|
||||||
|
os: mingw64
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Install cross compiler
|
||||||
|
run: |
|
||||||
|
ARCH=${{ matrix.arch }}
|
||||||
|
sudo apt-get install g++-mingw-w64-${ARCH//_/-}
|
||||||
|
- name: Install libfdk-aac binary from repo.msys.org
|
||||||
|
run: |
|
||||||
|
wget https://repo.msys2.org/mingw/${{ matrix.os }}/${{ matrix.os }}.db.tar.zst
|
||||||
|
DESCFILE=$(tar xvf ${{ matrix.os }}.db.tar.zst --wildcards '*-fdk-aac*/desc')
|
||||||
|
PKGFILE=$(sed -n '/%FILENAME%/{n;p;q}' $DESCFILE)
|
||||||
|
wget https://repo.msys2.org/mingw/${{ matrix.os }}/${PKGFILE}
|
||||||
|
sudo tar xvf ${PKGFILE} -C /usr/${{ matrix.arch }}-w64-mingw32 --strip-component=1
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
autoreconf -fiv
|
||||||
|
PKG_CONFIG_LIBDIR=/usr/${{ matrix.arch }}-w64-mingw32/lib/pkgconfig ./configure --host=${{ matrix.arch }}-w64-mingw32 --prefix=/usr/${{ matrix.arch }}-w64-mingw32
|
||||||
|
make -j2
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
macos:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
brew install autoconf automake libtool pkg-config
|
||||||
|
brew install fdk-aac
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
autoreconf -fiv
|
||||||
|
./configure
|
||||||
|
make -j3
|
||||||
|
sudo make install
|
||||||
|
- name: Test
|
||||||
|
run: |
|
||||||
|
fdkaac -b 128 -R -o /dev/null /dev/null
|
||||||
|
|
||||||
|
msys2:
|
||||||
|
runs-on: windows-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
sys: [ clang32, clang64, mingw32, mingw64, ucrt64 ]
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: msys2 {0}
|
||||||
|
steps:
|
||||||
|
- name: Setup msys2
|
||||||
|
uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: ${{ matrix.sys }}
|
||||||
|
update: true
|
||||||
|
install: git
|
||||||
|
pacboy: >-
|
||||||
|
autoconf:
|
||||||
|
automake:
|
||||||
|
libtool:
|
||||||
|
make:
|
||||||
|
cc:p
|
||||||
|
pkg-config:p
|
||||||
|
fdk-aac:p
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
autoreconf -fiv
|
||||||
|
./configure
|
||||||
|
make -j2
|
||||||
|
make install
|
||||||
|
- name: Test
|
||||||
|
run: |
|
||||||
|
fdkaac -b 128 -R -o /dev/null /dev/null
|
|
@ -20,3 +20,11 @@ src/.deps/
|
||||||
src/.dirstamp
|
src/.dirstamp
|
||||||
stamp-h1
|
stamp-h1
|
||||||
fdkaac
|
fdkaac
|
||||||
|
.vscode
|
||||||
|
fdk-aac
|
||||||
|
MSVC/Release
|
||||||
|
MSVC/Debug
|
||||||
|
MSVC/x64/Release
|
||||||
|
MSVC/x64/Debug
|
||||||
|
MSVC/fdk-aac
|
||||||
|
MSVC/*.vcxproj.user
|
||||||
|
|
16
ChangeLog
16
ChangeLog
|
@ -1,12 +1,24 @@
|
||||||
2022-07-13 nu774 <honeycomb77@gmail.com>
|
2022-08-04 nu774 <honeycomb77@gmail.com>
|
||||||
|
|
||||||
* bump [HEAD -> master]
|
* bump [HEAD -> master]
|
||||||
|
|
||||||
|
* fdk-aac.vcxproj: support vs2022
|
||||||
|
|
||||||
|
* extrapolater: don't return more samples than required
|
||||||
|
|
||||||
|
* wav/caf parser: add format checks
|
||||||
|
|
||||||
|
2022-07-13 nu774 <honeycomb77@gmail.com>
|
||||||
|
|
||||||
|
* update ChangeLog [origin/master]
|
||||||
|
|
||||||
|
* bump [v1.0.3]
|
||||||
|
|
||||||
* wav/caf parser: ensure fmt/desc chunk
|
* wav/caf parser: ensure fmt/desc chunk
|
||||||
|
|
||||||
2021-11-15 nu774 <honeycomb77@gmail.com>
|
2021-11-15 nu774 <honeycomb77@gmail.com>
|
||||||
|
|
||||||
* vcxproj: support Visual Studio 2022 [origin/master]
|
* vcxproj: support Visual Studio 2022
|
||||||
|
|
||||||
2021-04-23 nu774 <honeycomb77@gmail.com>
|
2021-04-23 nu774 <honeycomb77@gmail.com>
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,10 @@ fdkaac_SOURCES = \
|
||||||
|
|
||||||
dist_man_MANS = man/fdkaac.1
|
dist_man_MANS = man/fdkaac.1
|
||||||
|
|
||||||
|
fdkaac_CFLAGS = @CFLAGS@ @FDK_AAC_CFLAGS@
|
||||||
|
|
||||||
fdkaac_LDADD = \
|
fdkaac_LDADD = \
|
||||||
@LIBICONV@ @CHARSET_LIB@ -lfdk-aac -lm
|
@LIBICONV@ @CHARSET_LIB@ @FDK_AAC_LIBS@ -lm
|
||||||
|
|
||||||
.rc.o:
|
.rc.o:
|
||||||
$(RC) $< -o $@
|
$(RC) $< -o $@
|
||||||
|
|
|
@ -6,6 +6,7 @@ changequote([,])dnl
|
||||||
AC_INIT([fdkaac], [XX_VERSION], [honeycomb77@gmail.com])
|
AC_INIT([fdkaac], [XX_VERSION], [honeycomb77@gmail.com])
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
AC_CONFIG_AUX_DIR([.])
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
@ -15,8 +16,7 @@ AC_CHECK_TOOL(RC, windres,)
|
||||||
|
|
||||||
AC_CHECK_HEADERS([sys/time.h])
|
AC_CHECK_HEADERS([sys/time.h])
|
||||||
AC_CHECK_HEADERS([libcharset.h langinfo.h endian.h byteswap.h])
|
AC_CHECK_HEADERS([libcharset.h langinfo.h endian.h byteswap.h])
|
||||||
AC_CHECK_HEADERS([fdk-aac/aacenc_lib.h], ,
|
PKG_CHECK_MODULES([FDK_AAC],[fdk-aac])
|
||||||
AC_MSG_ERROR([libfdk-aac is required]))
|
|
||||||
|
|
||||||
AC_C_INLINE
|
AC_C_INLINE
|
||||||
AC_C_BIGENDIAN
|
AC_C_BIGENDIAN
|
||||||
|
|
|
@ -105,10 +105,14 @@ int caf_info(caf_reader_t *reader, int64_t chunk_size)
|
||||||
{
|
{
|
||||||
char *buf, *key, *val, *end;
|
char *buf, *key, *val, *end;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
int n;
|
||||||
|
|
||||||
if (chunk_size < 4 || (buf = malloc(chunk_size)) == 0)
|
if (chunk_size < 4 || (buf = malloc(chunk_size+1)) == 0)
|
||||||
return -1;
|
return -1;
|
||||||
pcm_read(&reader->io, buf, chunk_size);
|
n = pcm_read(&reader->io, buf, chunk_size);
|
||||||
|
if (n != chunk_size)
|
||||||
|
return -1;
|
||||||
|
buf[n] = 0;
|
||||||
key = buf + 4;
|
key = buf + 4;
|
||||||
end = buf + chunk_size;
|
end = buf + chunk_size;
|
||||||
do {
|
do {
|
||||||
|
|
|
@ -207,7 +207,6 @@ enum
|
||||||
kAudioChannelLayoutTag_AudioUnit_5_0 = kAudioChannelLayoutTag_MPEG_5_0_B, // L R Ls Rs C
|
kAudioChannelLayoutTag_AudioUnit_5_0 = kAudioChannelLayoutTag_MPEG_5_0_B, // L R Ls Rs C
|
||||||
kAudioChannelLayoutTag_AudioUnit_6_0 = (139L<<16) | 6, // L R Ls Rs C Cs
|
kAudioChannelLayoutTag_AudioUnit_6_0 = (139L<<16) | 6, // L R Ls Rs C Cs
|
||||||
kAudioChannelLayoutTag_AudioUnit_7_0 = (140L<<16) | 7, // L R Ls Rs C Rls Rrs
|
kAudioChannelLayoutTag_AudioUnit_7_0 = (140L<<16) | 7, // L R Ls Rs C Rls Rrs
|
||||||
kAudioChannelLayoutTag_AudioUnit_7_0_Front = (148L<<16) | 7, // L R Ls Rs C Lc Rc
|
|
||||||
kAudioChannelLayoutTag_AudioUnit_5_1 = kAudioChannelLayoutTag_MPEG_5_1_A, // L R C LFE Ls Rs
|
kAudioChannelLayoutTag_AudioUnit_5_1 = kAudioChannelLayoutTag_MPEG_5_1_A, // L R C LFE Ls Rs
|
||||||
kAudioChannelLayoutTag_AudioUnit_6_1 = kAudioChannelLayoutTag_MPEG_6_1_A, // L R C LFE Ls Rs Cs
|
kAudioChannelLayoutTag_AudioUnit_6_1 = kAudioChannelLayoutTag_MPEG_6_1_A, // L R C LFE Ls Rs Cs
|
||||||
kAudioChannelLayoutTag_AudioUnit_7_1 = kAudioChannelLayoutTag_MPEG_7_1_C, // L R C LFE Ls Rs Rls Rrs
|
kAudioChannelLayoutTag_AudioUnit_7_1 = kAudioChannelLayoutTag_MPEG_7_1_C, // L R C LFE Ls Rs Rls Rrs
|
||||||
|
@ -227,6 +226,10 @@ enum
|
||||||
kAudioChannelLayoutTag_TMH_10_2_std = (145L<<16) | 16, // L R C Vhc Lsd Rsd Ls Rs Vhl Vhr Lw Rw Csd Cs LFE1 LFE2
|
kAudioChannelLayoutTag_TMH_10_2_std = (145L<<16) | 16, // L R C Vhc Lsd Rsd Ls Rs Vhl Vhr Lw Rw Csd Cs LFE1 LFE2
|
||||||
kAudioChannelLayoutTag_TMH_10_2_full = (146L<<16) | 21, // TMH_10_2_std plus: Lc Rc HI VI Haptic
|
kAudioChannelLayoutTag_TMH_10_2_full = (146L<<16) | 21, // TMH_10_2_std plus: Lc Rc HI VI Haptic
|
||||||
|
|
||||||
|
kAudioChannelLayoutTag_DiscreteInOrder = (147L<<16) | 0, // needs to be ORed with the actual number of channels
|
||||||
|
|
||||||
|
kAudioChannelLayoutTag_AudioUnit_7_0_Front = (148L<<16) | 7, // L R Ls Rs C Lc Rc
|
||||||
|
|
||||||
kAudioChannelLayoutTag_AC3_1_0_1 = (149L<<16) | 2, // C LFE
|
kAudioChannelLayoutTag_AC3_1_0_1 = (149L<<16) | 2, // C LFE
|
||||||
kAudioChannelLayoutTag_AC3_3_0 = (150L<<16) | 3, // L C R
|
kAudioChannelLayoutTag_AC3_3_0 = (150L<<16) | 3, // L C R
|
||||||
kAudioChannelLayoutTag_AC3_3_1 = (151L<<16) | 4, // L C R Cs
|
kAudioChannelLayoutTag_AC3_3_1 = (151L<<16) | 4, // L C R Cs
|
||||||
|
@ -234,7 +237,53 @@ enum
|
||||||
kAudioChannelLayoutTag_AC3_2_1_1 = (153L<<16) | 4, // L R Cs LFE
|
kAudioChannelLayoutTag_AC3_2_1_1 = (153L<<16) | 4, // L R Cs LFE
|
||||||
kAudioChannelLayoutTag_AC3_3_1_1 = (154L<<16) | 5, // L C R Cs LFE
|
kAudioChannelLayoutTag_AC3_3_1_1 = (154L<<16) | 5, // L C R Cs LFE
|
||||||
|
|
||||||
kAudioChannelLayoutTag_DiscreteInOrder = (147L<<16) | 0, // needs to be ORed with the actual number of channels
|
kAudioChannelLayoutTag_EAC_6_0_A = (155<<16) | 6, // L C R Ls Rs Cs
|
||||||
|
kAudioChannelLayoutTag_EAC_7_0_A = (156<<16) | 7, // L C R Ls Rs Rls Rrs
|
||||||
|
|
||||||
|
kAudioChannelLayoutTag_EAC3_6_1_A = (157<<16) | 7, // L C R Ls Rs LFE Cs
|
||||||
|
kAudioChannelLayoutTag_EAC3_6_1_B = (158<<16) | 7, // L C R Ls Rs LFE Ts
|
||||||
|
kAudioChannelLayoutTag_EAC3_6_1_C = (159<<16) | 7, // L C R Ls Rs LFE Vhc
|
||||||
|
kAudioChannelLayoutTag_EAC3_7_1_A = (160<<16) | 8, // L C R Ls Rs LFE Rls Rrs
|
||||||
|
kAudioChannelLayoutTag_EAC3_7_1_B = (161<<16) | 8, // L C R Ls Rs LFE Lc Rc
|
||||||
|
kAudioChannelLayoutTag_EAC3_7_1_C = (162<<16) | 8, // L C R Ls Rs LFE Lsd Rsd
|
||||||
|
kAudioChannelLayoutTag_EAC3_7_1_D = (163<<16) | 8, // L C R Ls Rs LFE Lw Rw
|
||||||
|
kAudioChannelLayoutTag_EAC3_7_1_E = (164<<16) | 8, // L C R Ls Rs LFE Vhl Vhr
|
||||||
|
|
||||||
|
kAudioChannelLayoutTag_EAC3_7_1_F = (165<<16) | 8, // L C R Ls Rs LFE Cs Ts
|
||||||
|
kAudioChannelLayoutTag_EAC3_7_1_G = (166<<16) | 8, // L C R Ls Rs LFE Cs Vhc
|
||||||
|
kAudioChannelLayoutTag_EAC3_7_1_H = (167<<16) | 8, // L C R Ls Rs LFE Ts Vhc
|
||||||
|
|
||||||
|
kAudioChannelLayoutTag_DTS_3_1 = (168<<16) | 4, // C L R LFE
|
||||||
|
kAudioChannelLayoutTag_DTS_4_1 = (169<<16) | 5, // C L R Cs LFE
|
||||||
|
kAudioChannelLayoutTag_DTS_6_0_A = (170<<16) | 6, // Lc Rc L R Ls Rs
|
||||||
|
kAudioChannelLayoutTag_DTS_6_0_B = (171<<16) | 6, // C L R Rls Rrs Ts
|
||||||
|
kAudioChannelLayoutTag_DTS_6_0_C = (172<<16) | 6, // C Cs L R Rls Rrs
|
||||||
|
kAudioChannelLayoutTag_DTS_6_1_A = (173<<16) | 7, // Lc Rc L R Ls Rs LFE
|
||||||
|
kAudioChannelLayoutTag_DTS_6_1_B = (174<<16) | 7, // C L R Rls Rrs Ts LFE
|
||||||
|
kAudioChannelLayoutTag_DTS_6_1_C = (175<<16) | 7, // C Cs L R Rls Rrs LFE
|
||||||
|
kAudioChannelLayoutTag_DTS_7_0 = (176<<16) | 7, // Lc C Rc L R Ls Rs
|
||||||
|
kAudioChannelLayoutTag_DTS_7_1 = (177<<16) | 8, // Lc C Rc L R Ls Rs LFE
|
||||||
|
kAudioChannelLayoutTag_DTS_8_0_A = (178<<16) | 8, // Lc Rc L R Ls Rs Rls Rrs
|
||||||
|
kAudioChannelLayoutTag_DTS_8_0_B = (179<<16) | 8, // Lc C Rc L R Ls Cs Rs
|
||||||
|
kAudioChannelLayoutTag_DTS_8_1_A = (180<<16) | 9, // Lc Rc L R Ls Rs Rls Rrs LFE
|
||||||
|
kAudioChannelLayoutTag_DTS_8_1_B = (181<<16) | 9, // Lc C Rc L R Ls Cs Rs LFE
|
||||||
|
kAudioChannelLayoutTag_DTS_6_1_D = (182<<16) | 7, // C L R Ls Rs LFE Cs
|
||||||
|
|
||||||
|
kAudioChannelLayoutTag_AAC_7_1_B = (183<<16) | 8, // C L R Ls Rs Rls Rrs LFE
|
||||||
|
kAudioChannelLayoutTag_AAC_7_1_C = (184<<16) | 8, // C L R Ls Rs LFE Vhl Vhr
|
||||||
|
|
||||||
|
kAudioChannelLayoutTag_WAVE_4_0_B = (185<<16) | 4, // L R Rls Rrs
|
||||||
|
kAudioChannelLayoutTag_WAVE_5_0_B = (186<<16) | 5, // L R C Rls Rrs
|
||||||
|
kAudioChannelLayoutTag_WAVE_5_1_B = (187<<16) | 6, // L R C LFE Rls Rrs
|
||||||
|
kAudioChannelLayoutTag_WAVE_6_1 = (188<<16) | 7, // L R C LFE Cs Ls Rs
|
||||||
|
kAudioChannelLayoutTag_WAVE_7_1 = (189<<16) | 8, // L R C LFE Rls Rrs Ls Rs
|
||||||
|
|
||||||
|
kAudioChannelLayoutTag_Logic_4_0_C = (197U<<16) | 4, // L R Cs C
|
||||||
|
kAudioChannelLayoutTag_Logic_6_0_B = (198U<<16) | 6, // L R Ls Rs Cs C
|
||||||
|
kAudioChannelLayoutTag_Logic_6_1_B = (199U<<16) | 7, // L R Ls Rs Cs C LFE
|
||||||
|
kAudioChannelLayoutTag_Logic_6_1_D = (200U<<16) | 7, // L C R Ls Cs Rs LFE
|
||||||
|
kAudioChannelLayoutTag_Logic_7_1_B = (201U<<16) | 8, // L R Ls Rs Rls Rrs C LFE
|
||||||
|
|
||||||
kAudioChannelLayoutTag_Unknown = 0xFFFF0000 // needs to be ORed with the actual number of channels
|
kAudioChannelLayoutTag_Unknown = 0xFFFF0000 // needs to be ORed with the actual number of channels
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -121,10 +121,9 @@ PROGNAME " %s\n"
|
||||||
" -m, --bitrate-mode <n> Bitrate configuration\n"
|
" -m, --bitrate-mode <n> Bitrate configuration\n"
|
||||||
" 0: CBR (default)\n"
|
" 0: CBR (default)\n"
|
||||||
" 1-5: VBR\n"
|
" 1-5: VBR\n"
|
||||||
" (VBR mode is not officially supported, and\n"
|
" (VBR mode 1 is tuned for HE-AAC v2\n"
|
||||||
" works only on a certain combination of\n"
|
" VBR mode 2 is tuned for HE-AAC\n"
|
||||||
" parameter settings, sample rate, and\n"
|
" VBR mode 3 or greater is for AAC LC)\n"
|
||||||
" channel configuration)\n"
|
|
||||||
" -w, --bandwidth <n> Frequency bandwidth in Hz (AAC LC only)\n"
|
" -w, --bandwidth <n> Frequency bandwidth in Hz (AAC LC only)\n"
|
||||||
" -a, --afterburner <n> Afterburner\n"
|
" -a, --afterburner <n> Afterburner\n"
|
||||||
" 0: Off\n"
|
" 0: Off\n"
|
||||||
|
|
|
@ -60,6 +60,8 @@ int pcm_skip(pcm_io_context_t *io, int64_t count)
|
||||||
|
|
||||||
if (count == 0 || pcm_seek(io, count, SEEK_CUR) >= 0)
|
if (count == 0 || pcm_seek(io, count, SEEK_CUR) >= 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
if (count < 0)
|
||||||
|
return -1;
|
||||||
do {
|
do {
|
||||||
if ((rc = vp->read(io->cookie, buff, count > 8192 ? 8192 : count)) > 0)
|
if ((rc = vp->read(io->cookie, buff, count > 8192 ? 8192 : count)) > 0)
|
||||||
count -= rc;
|
count -= rc;
|
||||||
|
@ -293,6 +295,10 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
||||||
layout = "\x03\x01\x02\x09"; break;
|
layout = "\x03\x01\x02\x09"; break;
|
||||||
case kAudioChannelLayoutTag_AC3_3_1:
|
case kAudioChannelLayoutTag_AC3_3_1:
|
||||||
layout = "\x01\x03\x02\x09"; break;
|
layout = "\x01\x03\x02\x09"; break;
|
||||||
|
case kAudioChannelLayoutTag_WAVE_4_0_B:
|
||||||
|
layout = "\x01\x02\x05\x06"; break;
|
||||||
|
case kAudioChannelLayoutTag_Logic_4_0_C:
|
||||||
|
layout = "\x01\x02\x09\x03"; break;
|
||||||
/* 4.1ch */
|
/* 4.1ch */
|
||||||
case kAudioChannelLayoutTag_DVD_6:
|
case kAudioChannelLayoutTag_DVD_6:
|
||||||
layout = "\x01\x02\x04\x0A\x0B"; break;
|
layout = "\x01\x02\x04\x0A\x0B"; break;
|
||||||
|
@ -302,6 +308,8 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
||||||
layout = "\x01\x02\x03\x04\x09"; break;
|
layout = "\x01\x02\x03\x04\x09"; break;
|
||||||
case kAudioChannelLayoutTag_AC3_3_1_1:
|
case kAudioChannelLayoutTag_AC3_3_1_1:
|
||||||
layout = "\x01\x03\x02\x09\x04"; break;
|
layout = "\x01\x03\x02\x09\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_4_1:
|
||||||
|
layout = "\x03\x01\x02\x09\x04"; break;
|
||||||
/* 5ch */
|
/* 5ch */
|
||||||
case kAudioChannelLayoutTag_MPEG_5_0_A:
|
case kAudioChannelLayoutTag_MPEG_5_0_A:
|
||||||
layout = "\x01\x02\x03\x0A\x0B"; break;
|
layout = "\x01\x02\x03\x0A\x0B"; break;
|
||||||
|
@ -312,6 +320,8 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
||||||
layout = "\x01\x03\x02\x0A\x0B"; break;
|
layout = "\x01\x03\x02\x0A\x0B"; break;
|
||||||
case kAudioChannelLayoutTag_MPEG_5_0_D:
|
case kAudioChannelLayoutTag_MPEG_5_0_D:
|
||||||
layout = "\x03\x01\x02\x0A\x0B"; break;
|
layout = "\x03\x01\x02\x0A\x0B"; break;
|
||||||
|
case kAudioChannelLayoutTag_WAVE_5_0_B:
|
||||||
|
layout = "\x01\x02\x03\x05\x06"; break;
|
||||||
/* 5.1ch */
|
/* 5.1ch */
|
||||||
case kAudioChannelLayoutTag_MPEG_5_1_A:
|
case kAudioChannelLayoutTag_MPEG_5_1_A:
|
||||||
layout = "\x01\x02\x03\x04\x0A\x0B"; break;
|
layout = "\x01\x02\x03\x04\x0A\x0B"; break;
|
||||||
|
@ -321,17 +331,49 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
||||||
layout = "\x01\x03\x02\x0A\x0B\x04"; break;
|
layout = "\x01\x03\x02\x0A\x0B\x04"; break;
|
||||||
case kAudioChannelLayoutTag_MPEG_5_1_D:
|
case kAudioChannelLayoutTag_MPEG_5_1_D:
|
||||||
layout = "\x03\x01\x02\x0A\x0B\x04"; break;
|
layout = "\x03\x01\x02\x0A\x0B\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_WAVE_5_1_B:
|
||||||
|
layout = "\x01\x02\x03\x04\x05\x06"; break;
|
||||||
/* 6ch */
|
/* 6ch */
|
||||||
case kAudioChannelLayoutTag_Hexagonal:
|
case kAudioChannelLayoutTag_Hexagonal:
|
||||||
case kAudioChannelLayoutTag_AudioUnit_6_0:
|
case kAudioChannelLayoutTag_AudioUnit_6_0:
|
||||||
layout = "\x01\x02\x0A\x0B\x03\x09"; break;
|
layout = "\x01\x02\x0A\x0B\x03\x09"; break;
|
||||||
case kAudioChannelLayoutTag_AAC_6_0:
|
case kAudioChannelLayoutTag_AAC_6_0:
|
||||||
layout = "\x03\x01\x02\x0A\x0B\x09"; break;
|
layout = "\x03\x01\x02\x0A\x0B\x09"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC_6_0_A:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x09"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_6_0_A:
|
||||||
|
layout = "\x07\x08\x01\x02\x0A\x0B"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_6_0_B:
|
||||||
|
layout = "\x03\x01\x02\x05\x06\x0C"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_6_0_C:
|
||||||
|
layout = "\x03\x09\x01\x02\x05\x06"; break;
|
||||||
|
case kAudioChannelLayoutTag_Logic_6_0_B:
|
||||||
|
layout = "\x01\x02\x0A\x0B\x09\x03"; break;
|
||||||
/* 6.1ch */
|
/* 6.1ch */
|
||||||
case kAudioChannelLayoutTag_MPEG_6_1_A:
|
case kAudioChannelLayoutTag_MPEG_6_1_A:
|
||||||
layout = "\x01\x02\x03\x04\x0A\x0B\x09"; break;
|
layout = "\x01\x02\x03\x04\x0A\x0B\x09"; break;
|
||||||
case kAudioChannelLayoutTag_AAC_6_1:
|
case kAudioChannelLayoutTag_AAC_6_1:
|
||||||
layout = "\x03\x01\x02\x0A\x0B\x09\x04"; break;
|
layout = "\x03\x01\x02\x0A\x0B\x09\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_6_1_A:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x09"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_6_1_B:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x0C"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_6_1_C:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x0E"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_6_1_A:
|
||||||
|
layout = "\x07\x08\x01\x02\x0A\x0B\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_6_1_B:
|
||||||
|
layout = "\x03\x01\x02\x05\x06\x0C\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_6_1_C:
|
||||||
|
layout = "\x03\x09\x01\x02\x05\x06\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_6_1_D:
|
||||||
|
layout = "\x03\x01\x02\x0A\x0B\x04\x09"; break;
|
||||||
|
case kAudioChannelLayoutTag_WAVE_6_1:
|
||||||
|
layout = "\x01\x02\x03\x04\x09\x0A\x0B"; break;
|
||||||
|
case kAudioChannelLayoutTag_Logic_6_1_B:
|
||||||
|
layout = "\x01\x02\x0A\x0B\x09\x03\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_Logic_6_1_D:
|
||||||
|
layout = "\x01\x03\x02\x0A\x09\x0B\x04"; break;
|
||||||
/* 7ch */
|
/* 7ch */
|
||||||
case kAudioChannelLayoutTag_AudioUnit_7_0:
|
case kAudioChannelLayoutTag_AudioUnit_7_0:
|
||||||
layout = "\x01\x02\x0A\x0B\x03\x05\x06"; break;
|
layout = "\x01\x02\x0A\x0B\x03\x05\x06"; break;
|
||||||
|
@ -339,6 +381,10 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
||||||
layout = "\x01\x02\x0A\x0B\x03\x07\x08"; break;
|
layout = "\x01\x02\x0A\x0B\x03\x07\x08"; break;
|
||||||
case kAudioChannelLayoutTag_AAC_7_0:
|
case kAudioChannelLayoutTag_AAC_7_0:
|
||||||
layout = "\x03\x01\x02\x0A\x0B\x05\x06"; break;
|
layout = "\x03\x01\x02\x0A\x0B\x05\x06"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC_7_0_A:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x05\x06"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_7_0:
|
||||||
|
layout = "\x07\x03\x08\x01\x02\x0A\x0B"; break;
|
||||||
/* 7.1ch */
|
/* 7.1ch */
|
||||||
case kAudioChannelLayoutTag_MPEG_7_1_A:
|
case kAudioChannelLayoutTag_MPEG_7_1_A:
|
||||||
layout = "\x01\x02\x03\x04\x0A\x0B\x07\x08"; break;
|
layout = "\x01\x02\x03\x04\x0A\x0B\x07\x08"; break;
|
||||||
|
@ -348,11 +394,37 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
||||||
layout = "\x01\x02\x03\x04\x0A\x0B\x05\x06"; break;
|
layout = "\x01\x02\x03\x04\x0A\x0B\x05\x06"; break;
|
||||||
case kAudioChannelLayoutTag_Emagic_Default_7_1:
|
case kAudioChannelLayoutTag_Emagic_Default_7_1:
|
||||||
layout = "\x01\x02\x0A\x0B\x03\x04\x07\x08"; break;
|
layout = "\x01\x02\x0A\x0B\x03\x04\x07\x08"; break;
|
||||||
|
case kAudioChannelLayoutTag_AAC_7_1_B:
|
||||||
|
layout = "\x03\x01\x02\x0A\x0B\x05\x06\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_AAC_7_1_C:
|
||||||
|
layout = "\x03\x01\x02\x0A\x0B\x04\x0D\x0F"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_7_1_A:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x05\x06"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_7_1_B:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x07\x08"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_7_1_E:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x0D\x0F"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_7_1_F:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x09\x0C"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_7_1_G:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x09\x0E"; break;
|
||||||
|
case kAudioChannelLayoutTag_EAC3_7_1_H:
|
||||||
|
layout = "\x01\x03\x02\x0A\x0B\x04\x0C\x0E"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_7_1:
|
||||||
|
layout = "\x07\x03\x08\x01\x02\x0A\x0B\x04"; break;
|
||||||
|
case kAudioChannelLayoutTag_WAVE_7_1:
|
||||||
|
layout = "\x01\x02\x03\x04\x05\x06\x0A\x0B"; break;
|
||||||
|
case kAudioChannelLayoutTag_Logic_7_1_B:
|
||||||
|
layout = "\x01\x02\x0A\x0B\x05\x06\x03\x04"; break;
|
||||||
/* 8ch */
|
/* 8ch */
|
||||||
case kAudioChannelLayoutTag_Octagonal:
|
case kAudioChannelLayoutTag_Octagonal:
|
||||||
layout = "\x01\x02\x05\x06\x03\x09\x0A\x0B"; break;
|
layout = "\x01\x02\x05\x06\x03\x09\x0A\x0B"; break;
|
||||||
case kAudioChannelLayoutTag_AAC_Octagonal:
|
case kAudioChannelLayoutTag_AAC_Octagonal:
|
||||||
layout = "\x03\x01\x02\x0A\x0B\x05\x06\x09"; break;
|
layout = "\x03\x01\x02\x0A\x0B\x05\x06\x09"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_8_0_A:
|
||||||
|
layout = "\x07\x08\x01\x02\x0A\x0B\x05\x06"; break;
|
||||||
|
case kAudioChannelLayoutTag_DTS_8_0_B:
|
||||||
|
layout = "\x07\x03\x08\x01\x02\x0A\x09\x0B"; break;
|
||||||
default:
|
default:
|
||||||
goto FAIL;
|
goto FAIL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue