1 /* 2 * Copyright (C) 2010-2018 Team Kodi 3 * This file is part of Kodi - https://kodi.tv 4 * 5 * SPDX-License-Identifier: GPL-2.0-or-later 6 * See LICENSES/README.md for more information. 7 */ 8 9 #pragma once 10 11 /** 12 * The possible channels 13 */ 14 enum AEChannel 15 { 16 AE_CH_NULL = -1, 17 AE_CH_RAW , 18 19 AE_CH_FL , AE_CH_FR , AE_CH_FC , AE_CH_LFE, AE_CH_BL , AE_CH_BR , AE_CH_FLOC, 20 AE_CH_FROC, AE_CH_BC , AE_CH_SL , AE_CH_SR , AE_CH_TFL , AE_CH_TFR , AE_CH_TFC , 21 AE_CH_TC , AE_CH_TBL, AE_CH_TBR, AE_CH_TBC, AE_CH_BLOC, AE_CH_BROC, 22 23 /* p16v devices */ 24 AE_CH_UNKNOWN1 , AE_CH_UNKNOWN2 , AE_CH_UNKNOWN3 , AE_CH_UNKNOWN4 , 25 AE_CH_UNKNOWN5 , AE_CH_UNKNOWN6 , AE_CH_UNKNOWN7 , AE_CH_UNKNOWN8 , 26 AE_CH_UNKNOWN9 , AE_CH_UNKNOWN10, AE_CH_UNKNOWN11, AE_CH_UNKNOWN12, 27 AE_CH_UNKNOWN13, AE_CH_UNKNOWN14, AE_CH_UNKNOWN15, AE_CH_UNKNOWN16, 28 AE_CH_UNKNOWN17, AE_CH_UNKNOWN18, AE_CH_UNKNOWN19, AE_CH_UNKNOWN20, 29 AE_CH_UNKNOWN21, AE_CH_UNKNOWN22, AE_CH_UNKNOWN23, AE_CH_UNKNOWN24, 30 AE_CH_UNKNOWN25, AE_CH_UNKNOWN26, AE_CH_UNKNOWN27, AE_CH_UNKNOWN28, 31 AE_CH_UNKNOWN29, AE_CH_UNKNOWN30, AE_CH_UNKNOWN31, AE_CH_UNKNOWN32, 32 AE_CH_UNKNOWN33, AE_CH_UNKNOWN34, AE_CH_UNKNOWN35, AE_CH_UNKNOWN36, 33 AE_CH_UNKNOWN37, AE_CH_UNKNOWN38, AE_CH_UNKNOWN39, AE_CH_UNKNOWN40, 34 AE_CH_UNKNOWN41, AE_CH_UNKNOWN42, AE_CH_UNKNOWN43, AE_CH_UNKNOWN44, 35 AE_CH_UNKNOWN45, AE_CH_UNKNOWN46, AE_CH_UNKNOWN47, AE_CH_UNKNOWN48, 36 AE_CH_UNKNOWN49, AE_CH_UNKNOWN50, AE_CH_UNKNOWN51, AE_CH_UNKNOWN52, 37 AE_CH_UNKNOWN53, AE_CH_UNKNOWN54, AE_CH_UNKNOWN55, AE_CH_UNKNOWN56, 38 AE_CH_UNKNOWN57, AE_CH_UNKNOWN58, AE_CH_UNKNOWN59, AE_CH_UNKNOWN60, 39 AE_CH_UNKNOWN61, AE_CH_UNKNOWN62, AE_CH_UNKNOWN63, AE_CH_UNKNOWN64, 40 41 AE_CH_MAX 42 }; 43 44 /** 45 * Standard channel layouts 46 */ 47 enum AEStdChLayout 48 { 49 AE_CH_LAYOUT_INVALID = -1, 50 51 AE_CH_LAYOUT_1_0 = 0, 52 AE_CH_LAYOUT_2_0, 53 AE_CH_LAYOUT_2_1, 54 AE_CH_LAYOUT_3_0, 55 AE_CH_LAYOUT_3_1, 56 AE_CH_LAYOUT_4_0, 57 AE_CH_LAYOUT_4_1, 58 AE_CH_LAYOUT_5_0, 59 AE_CH_LAYOUT_5_1, 60 AE_CH_LAYOUT_7_0, 61 AE_CH_LAYOUT_7_1, 62 63 AE_CH_LAYOUT_MAX 64 }; 65 66 /** 67 * The various data formats 68 * LE = Little Endian, BE = Big Endian, NE = Native Endian 69 * @note This is ordered from the worst to best preferred formats 70 */ 71 enum AEDataFormat 72 { 73 AE_FMT_INVALID = -1, 74 75 AE_FMT_U8, 76 77 AE_FMT_S16BE, 78 AE_FMT_S16LE, 79 AE_FMT_S16NE, 80 81 AE_FMT_S32BE, 82 AE_FMT_S32LE, 83 AE_FMT_S32NE, 84 85 AE_FMT_S24BE4, 86 AE_FMT_S24LE4, 87 AE_FMT_S24NE4, // 24 bits in lower 3 bytes 88 AE_FMT_S24NE4MSB, // S32 with bits_per_sample < 32 89 90 AE_FMT_S24BE3, 91 AE_FMT_S24LE3, 92 AE_FMT_S24NE3, /* S24 in 3 bytes */ 93 94 AE_FMT_DOUBLE, 95 AE_FMT_FLOAT, 96 97 // Bitstream 98 AE_FMT_RAW, 99 100 /* planar formats */ 101 AE_FMT_U8P, 102 AE_FMT_S16NEP, 103 AE_FMT_S32NEP, 104 AE_FMT_S24NE4P, 105 AE_FMT_S24NE4MSBP, 106 AE_FMT_S24NE3P, 107 AE_FMT_DOUBLEP, 108 AE_FMT_FLOATP, 109 110 AE_FMT_MAX 111 }; 112