📄 chan.c
字号:
{ LQT_CHANNEL_FRONT_CENTER, CHANNEL_LABEL_Center }, { LQT_CHANNEL_FRONT_CENTER_LEFT, CHANNEL_LABEL_LeftCenter }, { LQT_CHANNEL_FRONT_CENTER_RIGHT, CHANNEL_LABEL_RightCenter }, { LQT_CHANNEL_BACK_CENTER, CHANNEL_LABEL_CenterSurround }, { LQT_CHANNEL_BACK_LEFT, CHANNEL_LABEL_LeftSurround }, { LQT_CHANNEL_BACK_RIGHT, CHANNEL_LABEL_RightSurround }, { LQT_CHANNEL_SIDE_LEFT, CHANNEL_LABEL_LeftSurroundDirect }, { LQT_CHANNEL_SIDE_RIGHT, CHANNEL_LABEL_RightSurroundDirect }, { LQT_CHANNEL_LFE, CHANNEL_LABEL_LFEScreen }, }; static lqt_channel_t channel_label_2_channel(channel_label_t channel_label) { int i; for(i = 0; i < sizeof(lqt_channels)/sizeof(lqt_channels[0]); i++) { if(lqt_channels[i].channel_label == channel_label) return lqt_channels[i].lqt_channel; } return LQT_CHANNEL_UNKNOWN; }static channel_label_t channel_2_channel_label(lqt_channel_t channel) { int i; for(i = 0; i < sizeof(lqt_channels)/sizeof(lqt_channels[0]); i++) { if(lqt_channels[i].lqt_channel == channel) return lqt_channels[i].channel_label; } return CHANNEL_LABEL_Unknown; }/* Layout tags */typedef enum { CHANNEL_LAYOUT_UseChannelDescriptions = (0<<16) | 0, // use the array of AudioChannelDescriptions to define the mapping. CHANNEL_LAYOUT_UseChannelBitmap = (1<<16) | 0, // use the bitmap to define the mapping.// 1 Channel Layout CHANNEL_LAYOUT_Mono = (100<<16) | 1, // a standard mono stream// 2 Channel layouts CHANNEL_LAYOUT_Stereo = (101<<16) | 2, // a standard stereo stream (L R) CHANNEL_LAYOUT_StereoHeadphones = (102<<16) | 2, // a standard stereo stream (L R) - implied headphone playback CHANNEL_LAYOUT_MatrixStereo = (103<<16) | 2, // a matrix encoded stereo stream (Lt, Rt) CHANNEL_LAYOUT_MidSide = (104<<16) | 2, // mid/side recording CHANNEL_LAYOUT_XY = (105<<16) | 2, // coincident mic pair (often 2 figure 8's) CHANNEL_LAYOUT_Binaural = (106<<16) | 2, // binaural stereo (left, right)// Symetric arrangements - same distance between speaker locations CHANNEL_LAYOUT_Ambisonic_B_Format = (107<<16) | 4, // W, X, Y, Z CHANNEL_LAYOUT_Quadraphonic = (108<<16) | 4, // front left, front right, back left, back right CHANNEL_LAYOUT_Pentagonal = (109<<16) | 5, // left, right, rear left, rear right, center CHANNEL_LAYOUT_Hexagonal = (110<<16) | 6, // left, right, rear left, rear right, center, rear CHANNEL_LAYOUT_Octagonal = (111<<16) | 8, // front left, front right, rear left, rear right, // front center, rear center, side left, side right CHANNEL_LAYOUT_Cube = (112<<16) | 8, // left, right, rear left, rear right // top left, top right, top rear left, top rear right// MPEG defined layouts CHANNEL_LAYOUT_MPEG_1_0 = CHANNEL_LAYOUT_Mono, // C CHANNEL_LAYOUT_MPEG_2_0 = CHANNEL_LAYOUT_Stereo, // L R CHANNEL_LAYOUT_MPEG_3_0_A = (113<<16) | 3, // L R C CHANNEL_LAYOUT_MPEG_3_0_B = (114<<16) | 3, // C L R CHANNEL_LAYOUT_MPEG_4_0_A = (115<<16) | 4, // L R C Cs CHANNEL_LAYOUT_MPEG_4_0_B = (116<<16) | 4, // C L R Cs CHANNEL_LAYOUT_MPEG_5_0_A = (117<<16) | 5, // L R C Ls Rs CHANNEL_LAYOUT_MPEG_5_0_B = (118<<16) | 5, // L R Ls Rs C CHANNEL_LAYOUT_MPEG_5_0_C = (119<<16) | 5, // L C R Ls Rs CHANNEL_LAYOUT_MPEG_5_0_D = (120<<16) | 5, // C L R Ls Rs CHANNEL_LAYOUT_MPEG_5_1_A = (121<<16) | 6, // L R C LFE Ls Rs CHANNEL_LAYOUT_MPEG_5_1_B = (122<<16) | 6, // L R Ls Rs C LFE CHANNEL_LAYOUT_MPEG_5_1_C = (123<<16) | 6, // L C R Ls Rs LFE CHANNEL_LAYOUT_MPEG_5_1_D = (124<<16) | 6, // C L R Ls Rs LFE CHANNEL_LAYOUT_MPEG_6_1_A = (125<<16) | 7, // L R C LFE Ls Rs Cs CHANNEL_LAYOUT_MPEG_7_1_A = (126<<16) | 8, // L R C LFE Ls Rs Lc Rc CHANNEL_LAYOUT_MPEG_7_1_B = (127<<16) | 8, // C Lc Rc L R Ls Rs LFE CHANNEL_LAYOUT_MPEG_7_1_C = (128<<16) | 8, // L R C LFE Ls R Rls Rrs CHANNEL_LAYOUT_Emagic_Default_7_1 = (129<<16) | 8, // L R Ls Rs C LFE Lc Rc CHANNEL_LAYOUT_SMPTE_DTV = (130<<16) | 8, // L R C LFE Ls Rs Lt Rt // (CHANNEL_LAYOUT_ITU_5_1 plus a matrix encoded stereo mix)// ITU defined layouts CHANNEL_LAYOUT_ITU_1_0 = CHANNEL_LAYOUT_Mono, // C CHANNEL_LAYOUT_ITU_2_0 = CHANNEL_LAYOUT_Stereo, // L R CHANNEL_LAYOUT_ITU_2_1 = (131<<16) | 3, // L R Cs CHANNEL_LAYOUT_ITU_2_2 = (132<<16) | 4, // L R Ls Rs CHANNEL_LAYOUT_ITU_3_0 = CHANNEL_LAYOUT_MPEG_3_0_A, // L R C CHANNEL_LAYOUT_ITU_3_1 = CHANNEL_LAYOUT_MPEG_4_0_A, // L R C Cs CHANNEL_LAYOUT_ITU_3_2 = CHANNEL_LAYOUT_MPEG_5_0_A, // L R C Ls Rs CHANNEL_LAYOUT_ITU_3_2_1 = CHANNEL_LAYOUT_MPEG_5_1_A, // L R C LFE Ls Rs CHANNEL_LAYOUT_ITU_3_4_1 = CHANNEL_LAYOUT_MPEG_7_1_C, // L R C LFE Ls Rs Rls Rrs// DVD defined layouts CHANNEL_LAYOUT_DVD_0 = CHANNEL_LAYOUT_Mono, // C (mono) CHANNEL_LAYOUT_DVD_1 = CHANNEL_LAYOUT_Stereo, // L R CHANNEL_LAYOUT_DVD_2 = CHANNEL_LAYOUT_ITU_2_1, // L R Cs CHANNEL_LAYOUT_DVD_3 = CHANNEL_LAYOUT_ITU_2_2, // L R Ls Rs CHANNEL_LAYOUT_DVD_4 = (133<<16) | 3, // L R LFE CHANNEL_LAYOUT_DVD_5 = (134<<16) | 4, // L R LFE Cs CHANNEL_LAYOUT_DVD_6 = (135<<16) | 5, // L R LFE Ls Rs CHANNEL_LAYOUT_DVD_7 = CHANNEL_LAYOUT_MPEG_3_0_A,// L R C CHANNEL_LAYOUT_DVD_8 = CHANNEL_LAYOUT_MPEG_4_0_A,// L R C Cs CHANNEL_LAYOUT_DVD_9 = CHANNEL_LAYOUT_MPEG_5_0_A,// L R C Ls Rs CHANNEL_LAYOUT_DVD_10 = (136<<16) | 4, // L R C LFE CHANNEL_LAYOUT_DVD_11 = (137<<16) | 5, // L R C LFE Cs CHANNEL_LAYOUT_DVD_12 = CHANNEL_LAYOUT_MPEG_5_1_A,// L R C LFE Ls Rs // 13 through 17 are duplicates of 8 through 12. CHANNEL_LAYOUT_DVD_13 = CHANNEL_LAYOUT_DVD_8, // L R C Cs CHANNEL_LAYOUT_DVD_14 = CHANNEL_LAYOUT_DVD_9, // L R C Ls Rs CHANNEL_LAYOUT_DVD_15 = CHANNEL_LAYOUT_DVD_10, // L R C LFE CHANNEL_LAYOUT_DVD_16 = CHANNEL_LAYOUT_DVD_11, // L R C LFE Cs CHANNEL_LAYOUT_DVD_17 = CHANNEL_LAYOUT_DVD_12, // L R C LFE Ls Rs CHANNEL_LAYOUT_DVD_18 = (138<<16) | 5, // L R Ls Rs LFE CHANNEL_LAYOUT_DVD_19 = CHANNEL_LAYOUT_MPEG_5_0_B,// L R Ls Rs C CHANNEL_LAYOUT_DVD_20 = CHANNEL_LAYOUT_MPEG_5_1_B,// L R Ls Rs C LFE// These layouts are recommended for Mac OS X's AudioUnit use// These are the symmetrical layouts CHANNEL_LAYOUT_AudioUnit_4= CHANNEL_LAYOUT_Quadraphonic, CHANNEL_LAYOUT_AudioUnit_5= CHANNEL_LAYOUT_Pentagonal, CHANNEL_LAYOUT_AudioUnit_6= CHANNEL_LAYOUT_Hexagonal, CHANNEL_LAYOUT_AudioUnit_8= CHANNEL_LAYOUT_Octagonal,// These are the surround-based layouts CHANNEL_LAYOUT_AudioUnit_5_0 = CHANNEL_LAYOUT_MPEG_5_0_B, // L R Ls Rs C CHANNEL_LAYOUT_AudioUnit_6_0 = (139<<16) | 6, // L R Ls Rs C Cs CHANNEL_LAYOUT_AudioUnit_7_0 = (140<<16) | 7, // L R Ls Rs C Rls Rrs CHANNEL_LAYOUT_AudioUnit_5_1 = CHANNEL_LAYOUT_MPEG_5_1_A, // L R C LFE Ls Rs CHANNEL_LAYOUT_AudioUnit_6_1 = CHANNEL_LAYOUT_MPEG_6_1_A, // L R C LFE Ls Rs Cs CHANNEL_LAYOUT_AudioUnit_7_1 = CHANNEL_LAYOUT_MPEG_7_1_C, // L R C LFE Ls Rs Rls Rrs// These layouts are used for AAC Encoding within the MPEG-4 Specification CHANNEL_LAYOUT_AAC_Quadraphonic = CHANNEL_LAYOUT_Quadraphonic, // L R Ls Rs CHANNEL_LAYOUT_AAC_4_0= CHANNEL_LAYOUT_MPEG_4_0_B, // C L R Cs CHANNEL_LAYOUT_AAC_5_0= CHANNEL_LAYOUT_MPEG_5_0_D, // C L R Ls Rs CHANNEL_LAYOUT_AAC_5_1= CHANNEL_LAYOUT_MPEG_5_1_D, // C L R Ls Rs Lfe CHANNEL_LAYOUT_AAC_6_0= (141<<16) | 6, // C L R Ls Rs Cs CHANNEL_LAYOUT_AAC_6_1= (142<<16) | 7, // C L R Ls Rs Cs Lfe CHANNEL_LAYOUT_AAC_7_0= (143<<16) | 7, // C L R Ls Rs Rls Rrs CHANNEL_LAYOUT_AAC_7_1= CHANNEL_LAYOUT_MPEG_7_1_B, // C Lc Rc L R Ls Rs Lfe CHANNEL_LAYOUT_AAC_Octagonal = (144<<16) | 8, // C L R Ls Rs Rls Rrs Cs CHANNEL_LAYOUT_TMH_10_2_std = (145<<16) | 16, // L R C Vhc Lsd Rsd Ls Rs Vhl Vhr Lw Rw Csd Cs LFE1 LFE2 CHANNEL_LAYOUT_TMH_10_2_full = (146<<16) | 21, // TMH_10_2_std plus: Lc Rc HI VI Haptic CHANNEL_LAYOUT_RESERVED_DO_NOT_USE= (147<<16)} channel_layout_t;static struct { channel_layout_t layout; channel_label_t * channels; }channel_locations[] = { { CHANNEL_LAYOUT_Mono, (channel_label_t[]){ CHANNEL_LABEL_Center } }, // a standard mono stream// 2 Channel layouts { CHANNEL_LAYOUT_Stereo, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right } }, // a standard stereo stream (L R) { CHANNEL_LAYOUT_StereoHeadphones, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right } }, // a standard stereo stream (L R) - implied headphone playback { CHANNEL_LAYOUT_MatrixStereo, (channel_label_t[]){ CHANNEL_LABEL_LeftTotal, CHANNEL_LABEL_RightTotal } }, // a matrix encoded stereo stream (Lt, Rt) { CHANNEL_LAYOUT_MidSide, (channel_label_t[]){ CHANNEL_LABEL_MS_Mid, CHANNEL_LABEL_MS_Side } }, // mid/side recording { CHANNEL_LAYOUT_XY, (channel_label_t[]){ CHANNEL_LABEL_XY_X, CHANNEL_LABEL_XY_Y } }, // coincident mic pair (often 2 figure 8's) { CHANNEL_LAYOUT_Binaural, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right } }, // binaural stereo (left, right)// Symetric arrangements - same distance between speaker locations { CHANNEL_LAYOUT_Ambisonic_B_Format, (channel_label_t[]){ CHANNEL_LABEL_Ambisonic_W, CHANNEL_LABEL_Ambisonic_X, CHANNEL_LABEL_Ambisonic_Y, CHANNEL_LABEL_Ambisonic_Z } }, // W, X, Y, Z { CHANNEL_LAYOUT_Quadraphonic, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_LeftSurround, CHANNEL_LABEL_RightSurround } }, // front left, front right, back left, back right { CHANNEL_LAYOUT_Pentagonal, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_LeftSurround, CHANNEL_LABEL_RightSurround, CHANNEL_LABEL_Center } }, // left, right, rear left, rear right, center { CHANNEL_LAYOUT_Hexagonal, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_LeftSurround, CHANNEL_LABEL_RightSurround, CHANNEL_LABEL_Center, CHANNEL_LABEL_CenterSurround } }, // left, right, rear left, rear right, center, rear { CHANNEL_LAYOUT_Octagonal, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_LeftSurround, CHANNEL_LABEL_RightSurround, CHANNEL_LABEL_Center, CHANNEL_LABEL_CenterSurround, CHANNEL_LABEL_LeftSurroundDirect, CHANNEL_LABEL_RightSurroundDirect } }, // front left, front right, rear left, rear right, // front center, rear center, side left, side right { CHANNEL_LAYOUT_Cube, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_LeftSurround, CHANNEL_LABEL_RightSurround, CHANNEL_LABEL_VerticalHeightLeft, CHANNEL_LABEL_VerticalHeightRight, CHANNEL_LABEL_TopBackLeft, CHANNEL_LABEL_TopBackRight } }, // left, right, rear left, rear right // top left, top right, top rear left, top rear right// MPEG defined layouts { CHANNEL_LAYOUT_MPEG_3_0_A, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_Center } }, // L R C { CHANNEL_LAYOUT_MPEG_4_0_A, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_Center, CHANNEL_LABEL_CenterSurround } }, // L R C Cs { CHANNEL_LAYOUT_MPEG_5_0_A, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_Center, CHANNEL_LABEL_LeftSurround, CHANNEL_LABEL_RightSurround } }, // L R C Ls Rs { CHANNEL_LAYOUT_MPEG_5_1_A, (channel_label_t[]){ CHANNEL_LABEL_Left, CHANNEL_LABEL_Right, CHANNEL_LABEL_Center, CHANNEL_LABEL_LFEScreen, CHANNEL_LABEL_LeftSurround, CHANNEL_LABEL_RightSurround } }, // L R C LFE Ls Rs
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -