summaryrefslogtreecommitdiffstats
path: root/xbmc/cores/AudioEngine/Utils/AEChannelData.h
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2015-03-04 00:23:39 +0100
committermanuel <manuel@mausz.at>2015-03-04 00:23:39 +0100
commit9d11b08ad61b1f0d6d7023ce403285d8662efaed (patch)
tree5bc0c947d9e10d3e8c9dc1e6b26f3d6599f0cea1 /xbmc/cores/AudioEngine/Utils/AEChannelData.h
parentc159d9f91f1573901868100a9464527a5a71575b (diff)
downloadkodi-pvr-build-9d11b08ad61b1f0d6d7023ce403285d8662efaed.tar.gz
kodi-pvr-build-9d11b08ad61b1f0d6d7023ce403285d8662efaed.tar.bz2
kodi-pvr-build-9d11b08ad61b1f0d6d7023ce403285d8662efaed.zip
sync with upstream
Diffstat (limited to 'xbmc/cores/AudioEngine/Utils/AEChannelData.h')
-rw-r--r--xbmc/cores/AudioEngine/Utils/AEChannelData.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/xbmc/cores/AudioEngine/Utils/AEChannelData.h b/xbmc/cores/AudioEngine/Utils/AEChannelData.h
new file mode 100644
index 0000000..5d47651
--- /dev/null
+++ b/xbmc/cores/AudioEngine/Utils/AEChannelData.h
@@ -0,0 +1,128 @@
1#pragma once
2/*
3 * Copyright (C) 2010-2013 Team XBMC
4 * http://xbmc.org
5 *
6 * This Program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
9 * any later version.
10 *
11 * This Program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with XBMC; see the file COPYING. If not, see
18 * <http://www.gnu.org/licenses/>.
19 *
20 */
21
22/**
23 * The possible channels
24 */
25enum AEChannel
26{
27 AE_CH_NULL = -1,
28 AE_CH_RAW ,
29
30 AE_CH_FL , AE_CH_FR , AE_CH_FC , AE_CH_LFE, AE_CH_BL , AE_CH_BR , AE_CH_FLOC,
31 AE_CH_FROC, AE_CH_BC , AE_CH_SL , AE_CH_SR , AE_CH_TFL , AE_CH_TFR , AE_CH_TFC ,
32 AE_CH_TC , AE_CH_TBL, AE_CH_TBR, AE_CH_TBC, AE_CH_BLOC, AE_CH_BROC,
33
34 /* p16v devices */
35 AE_CH_UNKNOWN1,
36 AE_CH_UNKNOWN2,
37 AE_CH_UNKNOWN3,
38 AE_CH_UNKNOWN4,
39 AE_CH_UNKNOWN5,
40 AE_CH_UNKNOWN6,
41 AE_CH_UNKNOWN7,
42 AE_CH_UNKNOWN8,
43 AE_CH_UNKNOWN9,
44 AE_CH_UNKNOWN10,
45 AE_CH_UNKNOWN11,
46 AE_CH_UNKNOWN12,
47 AE_CH_UNKNOWN13,
48 AE_CH_UNKNOWN14,
49 AE_CH_UNKNOWN15,
50 AE_CH_UNKNOWN16,
51
52 AE_CH_MAX
53};
54
55/**
56 * Standard channel layouts
57 */
58enum AEStdChLayout
59{
60 AE_CH_LAYOUT_INVALID = -1,
61
62 AE_CH_LAYOUT_1_0 = 0,
63 AE_CH_LAYOUT_2_0,
64 AE_CH_LAYOUT_2_1,
65 AE_CH_LAYOUT_3_0,
66 AE_CH_LAYOUT_3_1,
67 AE_CH_LAYOUT_4_0,
68 AE_CH_LAYOUT_4_1,
69 AE_CH_LAYOUT_5_0,
70 AE_CH_LAYOUT_5_1,
71 AE_CH_LAYOUT_7_0,
72 AE_CH_LAYOUT_7_1,
73
74 AE_CH_LAYOUT_MAX
75};
76
77/**
78 * The various data formats
79 * LE = Little Endian, BE = Big Endian, NE = Native Endian
80 * @note This is ordered from the worst to best preferred formats
81 */
82enum AEDataFormat
83{
84 AE_FMT_INVALID = -1,
85
86 AE_FMT_U8,
87
88 AE_FMT_S16BE,
89 AE_FMT_S16LE,
90 AE_FMT_S16NE,
91
92 AE_FMT_S32BE,
93 AE_FMT_S32LE,
94 AE_FMT_S32NE,
95
96 AE_FMT_S24BE4,
97 AE_FMT_S24LE4,
98 AE_FMT_S24NE4, // 24 bits in lower 3 bytes
99 AE_FMT_S24NE4MSB, // S32 with bits_per_sample < 32
100
101 AE_FMT_S24BE3,
102 AE_FMT_S24LE3,
103 AE_FMT_S24NE3, /* S24 in 3 bytes */
104
105 AE_FMT_DOUBLE,
106 AE_FMT_FLOAT,
107
108 /* Bitstream formats */
109 AE_FMT_AAC,
110 AE_FMT_AC3,
111 AE_FMT_DTS,
112 AE_FMT_EAC3,
113 AE_FMT_TRUEHD,
114 AE_FMT_DTSHD,
115 AE_FMT_LPCM,
116
117 /* planar formats */
118 AE_FMT_U8P,
119 AE_FMT_S16NEP,
120 AE_FMT_S32NEP,
121 AE_FMT_S24NE4P,
122 AE_FMT_S24NE4MSBP,
123 AE_FMT_S24NE3P,
124 AE_FMT_DOUBLEP,
125 AE_FMT_FLOATP,
126
127 AE_FMT_MAX
128};