mirror of https://github.com/nu774/fdkaac.git
add support for recent apple channel layout tags
This commit is contained in:
parent
7291661fdc
commit
11f6ac1665
|
@ -207,7 +207,6 @@ enum
|
|||
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_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_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
|
||||
|
@ -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_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_3_0 = (150L<<16) | 3, // L C R
|
||||
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_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
|
||||
};
|
||||
|
||||
|
|
|
@ -295,6 +295,10 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
|||
layout = "\x03\x01\x02\x09"; break;
|
||||
case kAudioChannelLayoutTag_AC3_3_1:
|
||||
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 */
|
||||
case kAudioChannelLayoutTag_DVD_6:
|
||||
layout = "\x01\x02\x04\x0A\x0B"; break;
|
||||
|
@ -304,6 +308,8 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
|||
layout = "\x01\x02\x03\x04\x09"; break;
|
||||
case kAudioChannelLayoutTag_AC3_3_1_1:
|
||||
layout = "\x01\x03\x02\x09\x04"; break;
|
||||
case kAudioChannelLayoutTag_DTS_4_1:
|
||||
layout = "\x03\x01\x02\x09\x04"; break;
|
||||
/* 5ch */
|
||||
case kAudioChannelLayoutTag_MPEG_5_0_A:
|
||||
layout = "\x01\x02\x03\x0A\x0B"; break;
|
||||
|
@ -314,6 +320,8 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
|||
layout = "\x01\x03\x02\x0A\x0B"; break;
|
||||
case kAudioChannelLayoutTag_MPEG_5_0_D:
|
||||
layout = "\x03\x01\x02\x0A\x0B"; break;
|
||||
case kAudioChannelLayoutTag_WAVE_5_0_B:
|
||||
layout = "\x01\x02\x03\x05\x06"; break;
|
||||
/* 5.1ch */
|
||||
case kAudioChannelLayoutTag_MPEG_5_1_A:
|
||||
layout = "\x01\x02\x03\x04\x0A\x0B"; break;
|
||||
|
@ -323,17 +331,49 @@ int apple_chan_chunk(pcm_io_context_t *io, uint32_t chunk_size,
|
|||
layout = "\x01\x03\x02\x0A\x0B\x04"; break;
|
||||
case kAudioChannelLayoutTag_MPEG_5_1_D:
|
||||
layout = "\x03\x01\x02\x0A\x0B\x04"; break;
|
||||
case kAudioChannelLayoutTag_WAVE_5_1_B:
|
||||
layout = "\x01\x02\x03\x04\x05\x06"; break;
|
||||
/* 6ch */
|
||||
case kAudioChannelLayoutTag_Hexagonal:
|
||||
case kAudioChannelLayoutTag_AudioUnit_6_0:
|
||||
layout = "\x01\x02\x0A\x0B\x03\x09"; break;
|
||||
case kAudioChannelLayoutTag_AAC_6_0:
|
||||
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 */
|
||||
case kAudioChannelLayoutTag_MPEG_6_1_A:
|
||||
layout = "\x01\x02\x03\x04\x0A\x0B\x09"; break;
|
||||
case kAudioChannelLayoutTag_AAC_6_1:
|
||||
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 */
|
||||
case kAudioChannelLayoutTag_AudioUnit_7_0:
|
||||
layout = "\x01\x02\x0A\x0B\x03\x05\x06"; break;
|
||||
|
@ -341,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;
|
||||
case kAudioChannelLayoutTag_AAC_7_0:
|
||||
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 */
|
||||
case kAudioChannelLayoutTag_MPEG_7_1_A:
|
||||
layout = "\x01\x02\x03\x04\x0A\x0B\x07\x08"; break;
|
||||
|
@ -350,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;
|
||||
case kAudioChannelLayoutTag_Emagic_Default_7_1:
|
||||
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 */
|
||||
case kAudioChannelLayoutTag_Octagonal:
|
||||
layout = "\x01\x02\x05\x06\x03\x09\x0A\x0B"; break;
|
||||
case kAudioChannelLayoutTag_AAC_Octagonal:
|
||||
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:
|
||||
goto FAIL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue