1/*
2 * This header was generated from the Linux kernel headers by update_headers.py,
3 * to provide necessary information from kernel to userspace, such as constants,
4 * structures, and macros, and thus, contains no copyrightable information.
5 */
6#ifndef __SND_COMPRESS_PARAMS_H
7#define __SND_COMPRESS_PARAMS_H
8#include <linux/types.h>
9#define MAX_NUM_CODECS 32
10#define MAX_NUM_CODEC_DESCRIPTORS 32
11#define MAX_NUM_BITRATES 32
12#define MAX_NUM_SAMPLE_RATES 32
13#define SND_AUDIOCODEC_PCM                   ((__u32) 0x00000001)
14#define SND_AUDIOCODEC_MP3                   ((__u32) 0x00000002)
15#define SND_AUDIOCODEC_AMR                   ((__u32) 0x00000003)
16#define SND_AUDIOCODEC_AMRWB                 ((__u32) 0x00000004)
17#define SND_AUDIOCODEC_AMRWBPLUS             ((__u32) 0x00000005)
18#define SND_AUDIOCODEC_AAC                   ((__u32) 0x00000006)
19#define SND_AUDIOCODEC_WMA                   ((__u32) 0x00000007)
20#define SND_AUDIOCODEC_REAL                  ((__u32) 0x00000008)
21#define SND_AUDIOCODEC_VORBIS                ((__u32) 0x00000009)
22#define SND_AUDIOCODEC_FLAC                  ((__u32) 0x0000000A)
23#define SND_AUDIOCODEC_IEC61937              ((__u32) 0x0000000B)
24#define SND_AUDIOCODEC_G723_1                ((__u32) 0x0000000C)
25#define SND_AUDIOCODEC_G729                  ((__u32) 0x0000000D)
26#define SND_AUDIOCODEC_BESPOKE               ((__u32) 0x0000000E)
27#define SND_AUDIOCODEC_MAX                   SND_AUDIOCODEC_BESPOKE
28#define SND_AUDIOPROFILE_PCM                 ((__u32) 0x00000001)
29#define SND_AUDIOCHANMODE_MP3_MONO           ((__u32) 0x00000001)
30#define SND_AUDIOCHANMODE_MP3_STEREO         ((__u32) 0x00000002)
31#define SND_AUDIOCHANMODE_MP3_JOINTSTEREO    ((__u32) 0x00000004)
32#define SND_AUDIOCHANMODE_MP3_DUAL           ((__u32) 0x00000008)
33#define SND_AUDIOPROFILE_AMR                 ((__u32) 0x00000001)
34#define SND_AUDIOMODE_AMR_DTX_OFF            ((__u32) 0x00000001)
35#define SND_AUDIOMODE_AMR_VAD1               ((__u32) 0x00000002)
36#define SND_AUDIOMODE_AMR_VAD2               ((__u32) 0x00000004)
37#define SND_AUDIOSTREAMFORMAT_UNDEFINED	     ((__u32) 0x00000000)
38#define SND_AUDIOSTREAMFORMAT_CONFORMANCE    ((__u32) 0x00000001)
39#define SND_AUDIOSTREAMFORMAT_IF1            ((__u32) 0x00000002)
40#define SND_AUDIOSTREAMFORMAT_IF2            ((__u32) 0x00000004)
41#define SND_AUDIOSTREAMFORMAT_FSF            ((__u32) 0x00000008)
42#define SND_AUDIOSTREAMFORMAT_RTPPAYLOAD     ((__u32) 0x00000010)
43#define SND_AUDIOSTREAMFORMAT_ITU            ((__u32) 0x00000020)
44#define SND_AUDIOPROFILE_AMRWB               ((__u32) 0x00000001)
45#define SND_AUDIOMODE_AMRWB_DTX_OFF          ((__u32) 0x00000001)
46#define SND_AUDIOMODE_AMRWB_VAD1             ((__u32) 0x00000002)
47#define SND_AUDIOMODE_AMRWB_VAD2             ((__u32) 0x00000004)
48#define SND_AUDIOPROFILE_AMRWBPLUS           ((__u32) 0x00000001)
49#define SND_AUDIOPROFILE_AAC                 ((__u32) 0x00000001)
50#define SND_AUDIOMODE_AAC_MAIN               ((__u32) 0x00000001)
51#define SND_AUDIOMODE_AAC_LC                 ((__u32) 0x00000002)
52#define SND_AUDIOMODE_AAC_SSR                ((__u32) 0x00000004)
53#define SND_AUDIOMODE_AAC_LTP                ((__u32) 0x00000008)
54#define SND_AUDIOMODE_AAC_HE                 ((__u32) 0x00000010)
55#define SND_AUDIOMODE_AAC_SCALABLE           ((__u32) 0x00000020)
56#define SND_AUDIOMODE_AAC_ERLC               ((__u32) 0x00000040)
57#define SND_AUDIOMODE_AAC_LD                 ((__u32) 0x00000080)
58#define SND_AUDIOMODE_AAC_HE_PS              ((__u32) 0x00000100)
59#define SND_AUDIOMODE_AAC_HE_MPS             ((__u32) 0x00000200)
60#define SND_AUDIOSTREAMFORMAT_MP2ADTS        ((__u32) 0x00000001)
61#define SND_AUDIOSTREAMFORMAT_MP4ADTS        ((__u32) 0x00000002)
62#define SND_AUDIOSTREAMFORMAT_MP4LOAS        ((__u32) 0x00000004)
63#define SND_AUDIOSTREAMFORMAT_MP4LATM        ((__u32) 0x00000008)
64#define SND_AUDIOSTREAMFORMAT_ADIF           ((__u32) 0x00000010)
65#define SND_AUDIOSTREAMFORMAT_MP4FF          ((__u32) 0x00000020)
66#define SND_AUDIOSTREAMFORMAT_RAW            ((__u32) 0x00000040)
67#define SND_AUDIOPROFILE_WMA7                ((__u32) 0x00000001)
68#define SND_AUDIOPROFILE_WMA8                ((__u32) 0x00000002)
69#define SND_AUDIOPROFILE_WMA9                ((__u32) 0x00000004)
70#define SND_AUDIOPROFILE_WMA10               ((__u32) 0x00000008)
71#define SND_AUDIOMODE_WMA_LEVEL1             ((__u32) 0x00000001)
72#define SND_AUDIOMODE_WMA_LEVEL2             ((__u32) 0x00000002)
73#define SND_AUDIOMODE_WMA_LEVEL3             ((__u32) 0x00000004)
74#define SND_AUDIOMODE_WMA_LEVEL4             ((__u32) 0x00000008)
75#define SND_AUDIOMODE_WMAPRO_LEVELM0         ((__u32) 0x00000010)
76#define SND_AUDIOMODE_WMAPRO_LEVELM1         ((__u32) 0x00000020)
77#define SND_AUDIOMODE_WMAPRO_LEVELM2         ((__u32) 0x00000040)
78#define SND_AUDIOMODE_WMAPRO_LEVELM3         ((__u32) 0x00000080)
79#define SND_AUDIOSTREAMFORMAT_WMA_ASF        ((__u32) 0x00000001)
80#define SND_AUDIOSTREAMFORMAT_WMA_NOASF_HDR  ((__u32) 0x00000002)
81#define SND_AUDIOPROFILE_REALAUDIO           ((__u32) 0x00000001)
82#define SND_AUDIOMODE_REALAUDIO_G2           ((__u32) 0x00000001)
83#define SND_AUDIOMODE_REALAUDIO_8            ((__u32) 0x00000002)
84#define SND_AUDIOMODE_REALAUDIO_10           ((__u32) 0x00000004)
85#define SND_AUDIOMODE_REALAUDIO_SURROUND     ((__u32) 0x00000008)
86#define SND_AUDIOPROFILE_VORBIS              ((__u32) 0x00000001)
87#define SND_AUDIOMODE_VORBIS                 ((__u32) 0x00000001)
88#define SND_AUDIOPROFILE_FLAC                ((__u32) 0x00000001)
89#define SND_AUDIOMODE_FLAC_LEVEL0            ((__u32) 0x00000001)
90#define SND_AUDIOMODE_FLAC_LEVEL1            ((__u32) 0x00000002)
91#define SND_AUDIOMODE_FLAC_LEVEL2            ((__u32) 0x00000004)
92#define SND_AUDIOMODE_FLAC_LEVEL3            ((__u32) 0x00000008)
93#define SND_AUDIOMODE_FLAC_LEVEL4            ((__u32) 0x00000010)
94#define SND_AUDIOMODE_FLAC_LEVEL5            ((__u32) 0x00000020)
95#define SND_AUDIOMODE_FLAC_LEVEL6            ((__u32) 0x00000040)
96#define SND_AUDIOMODE_FLAC_LEVEL7            ((__u32) 0x00000080)
97#define SND_AUDIOMODE_FLAC_LEVEL8            ((__u32) 0x00000100)
98#define SND_AUDIOSTREAMFORMAT_FLAC           ((__u32) 0x00000001)
99#define SND_AUDIOSTREAMFORMAT_FLAC_OGG       ((__u32) 0x00000002)
100#define SND_AUDIOPROFILE_IEC61937            ((__u32) 0x00000001)
101#define SND_AUDIOPROFILE_IEC61937_SPDIF      ((__u32) 0x00000002)
102#define SND_AUDIOMODE_IEC_REF_STREAM_HEADER  ((__u32) 0x00000000)
103#define SND_AUDIOMODE_IEC_LPCM		     ((__u32) 0x00000001)
104#define SND_AUDIOMODE_IEC_AC3		     ((__u32) 0x00000002)
105#define SND_AUDIOMODE_IEC_MPEG1		     ((__u32) 0x00000004)
106#define SND_AUDIOMODE_IEC_MP3		     ((__u32) 0x00000008)
107#define SND_AUDIOMODE_IEC_MPEG2		     ((__u32) 0x00000010)
108#define SND_AUDIOMODE_IEC_AACLC		     ((__u32) 0x00000020)
109#define SND_AUDIOMODE_IEC_DTS		     ((__u32) 0x00000040)
110#define SND_AUDIOMODE_IEC_ATRAC		     ((__u32) 0x00000080)
111#define SND_AUDIOMODE_IEC_SACD		     ((__u32) 0x00000100)
112#define SND_AUDIOMODE_IEC_EAC3		     ((__u32) 0x00000200)
113#define SND_AUDIOMODE_IEC_DTS_HD	     ((__u32) 0x00000400)
114#define SND_AUDIOMODE_IEC_MLP		     ((__u32) 0x00000800)
115#define SND_AUDIOMODE_IEC_DST		     ((__u32) 0x00001000)
116#define SND_AUDIOMODE_IEC_WMAPRO	     ((__u32) 0x00002000)
117#define SND_AUDIOMODE_IEC_REF_CXT            ((__u32) 0x00004000)
118#define SND_AUDIOMODE_IEC_HE_AAC	     ((__u32) 0x00008000)
119#define SND_AUDIOMODE_IEC_HE_AAC2	     ((__u32) 0x00010000)
120#define SND_AUDIOMODE_IEC_MPEG_SURROUND	     ((__u32) 0x00020000)
121#define SND_AUDIOPROFILE_G723_1              ((__u32) 0x00000001)
122#define SND_AUDIOMODE_G723_1_ANNEX_A         ((__u32) 0x00000001)
123#define SND_AUDIOMODE_G723_1_ANNEX_B         ((__u32) 0x00000002)
124#define SND_AUDIOMODE_G723_1_ANNEX_C         ((__u32) 0x00000004)
125#define SND_AUDIOPROFILE_G729                ((__u32) 0x00000001)
126#define SND_AUDIOMODE_G729_ANNEX_A           ((__u32) 0x00000001)
127#define SND_AUDIOMODE_G729_ANNEX_B           ((__u32) 0x00000002)
128#define SND_RATECONTROLMODE_CONSTANTBITRATE  ((__u32) 0x00000001)
129#define SND_RATECONTROLMODE_VARIABLEBITRATE  ((__u32) 0x00000002)
130struct snd_enc_wma {
131	__u32 super_block_align;
132};
133struct snd_enc_vorbis {
134	__s32 quality;
135	__u32 managed;
136	__u32 max_bit_rate;
137	__u32 min_bit_rate;
138	__u32 downmix;
139} __attribute__((packed, aligned(4)));
140struct snd_enc_real {
141	__u32 quant_bits;
142	__u32 start_region;
143	__u32 num_regions;
144} __attribute__((packed, aligned(4)));
145struct snd_enc_flac {
146	__u32 num;
147	__u32 gain;
148} __attribute__((packed, aligned(4)));
149struct snd_enc_generic {
150	__u32 bw;
151	__s32 reserved[15];
152} __attribute__((packed, aligned(4)));
153union snd_codec_options {
154	struct snd_enc_wma wma;
155	struct snd_enc_vorbis vorbis;
156	struct snd_enc_real real;
157	struct snd_enc_flac flac;
158	struct snd_enc_generic generic;
159} __attribute__((packed, aligned(4)));
160struct snd_codec_desc {
161	__u32 max_ch;
162	__u32 sample_rates[MAX_NUM_SAMPLE_RATES];
163	__u32 num_sample_rates;
164	__u32 bit_rate[MAX_NUM_BITRATES];
165	__u32 num_bitrates;
166	__u32 rate_control;
167	__u32 profiles;
168	__u32 modes;
169	__u32 formats;
170	__u32 min_buffer;
171	__u32 reserved[15];
172} __attribute__((packed, aligned(4)));
173struct snd_codec {
174	__u32 id;
175	__u32 ch_in;
176	__u32 ch_out;
177	__u32 sample_rate;
178	__u32 bit_rate;
179	__u32 rate_control;
180	__u32 profile;
181	__u32 level;
182	__u32 ch_mode;
183	__u32 format;
184	__u32 align;
185	union snd_codec_options options;
186	__u32 reserved[3];
187} __attribute__((packed, aligned(4)));
188#endif
189