diff options
Diffstat (limited to 'lib/rbcodec/codecs/libopus/opus_header.h')
-rw-r--r-- | lib/rbcodec/codecs/libopus/opus_header.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libopus/opus_header.h b/lib/rbcodec/codecs/libopus/opus_header.h new file mode 100644 index 0000000000..7bfacfe48c --- /dev/null +++ b/lib/rbcodec/codecs/libopus/opus_header.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* Copyright (C)2012 Xiph.Org Foundation | ||
2 | File: opus_header.h | ||
3 | |||
4 | Redistribution and use in source and binary forms, with or without | ||
5 | modification, are permitted provided that the following conditions | ||
6 | are met: | ||
7 | |||
8 | - Redistributions of source code must retain the above copyright | ||
9 | notice, this list of conditions and the following disclaimer. | ||
10 | |||
11 | - Redistributions in binary form must reproduce the above copyright | ||
12 | notice, this list of conditions and the following disclaimer in the | ||
13 | documentation and/or other materials provided with the distribution. | ||
14 | |||
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
16 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
17 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
18 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR | ||
19 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
20 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||
21 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
22 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
23 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
24 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | #ifndef OPUS_HEADER_H | ||
29 | #define OPUS_HEADER_H | ||
30 | |||
31 | #include "ogg/ogg.h" | ||
32 | |||
33 | typedef struct { | ||
34 | int version; | ||
35 | int channels; /* Number of channels: 1..255 */ | ||
36 | int preskip; | ||
37 | ogg_uint32_t input_sample_rate; | ||
38 | int gain; /* in dB S7.8 should be zero whenever possible */ | ||
39 | int channel_mapping; | ||
40 | /* The rest is only used if channel_mapping != 0 */ | ||
41 | int nb_streams; | ||
42 | int nb_coupled; | ||
43 | unsigned char stream_map[255]; | ||
44 | } OpusHeader; | ||
45 | |||
46 | int opus_header_parse(const unsigned char *header, int len, OpusHeader *h); | ||
47 | int opus_header_to_packet(const OpusHeader *h, unsigned char *packet, int len); | ||
48 | |||
49 | extern const int wav_permute_matrix[8][8]; | ||
50 | |||
51 | #endif | ||