1ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu/*
22f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * audio_parser.h, helper parser for audio codec data
330bd6062e4b295f5f7bcaeb98165065310d29269Ho-Eun Ryu *
42f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * Copyright (c) 2009-2010 Wind River Systems, Inc.
52f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu *
62f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * Licensed under the Apache License, Version 2.0 (the "License");
72f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * you may not use this file except in compliance with the License.
82f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * You may obtain a copy of the License at
92f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu *
102f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * http://www.apache.org/licenses/LICENSE-2.0
112f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu *
122f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * Unless required by applicable law or agreed to in writing, software
132f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * distributed under the License is distributed on an "AS IS" BASIS,
142f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
152f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * See the License for the specific language governing permissions and
162f6e87e64736666857c1bbe2cb0692c1f4e56508Ho-Eun Ryu * limitations under the License.
17ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu */
18ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
19ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#ifndef __WRS_OMXIL_AUDIO_PARSER
20ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define ___WRS_OMXIL_AUDIO_PARSER
21ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
22ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#ifdef __cplusplus
23ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryuextern "C" {
24ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#endif
25ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
26ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu/*
27ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu * MP3
28ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu */
29ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
30ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_VERSION_25           0x0
31ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_VERSION_2            0x2
32ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_VERSION_1            0x3
33ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
34ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_LAYER_3              0x1
35ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_LAYER_2              0x2
36ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_LAYER_1              0x3
37ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
38ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_CRC_PROTECTED        0x0
39ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_NOT_PROTECTED        0x1
40ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
41ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_STEREO               0x0
42ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_JOINT_STEREO         0x1
43ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_DUAL_CHANNEL         0x2
44ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#define MP3_HEADER_SINGLE_CHANNEL       0x3
45ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
46ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryuint mp3_header_parse(const unsigned char *buffer,
47ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu                     int *version, int *layer, int *crc, int *bitrate,
4852c06a6af5a4560535a30e96d5bae93db94fb023Ho-Eun Ryu                     int *frequency, int *channel, int *mode_extension,
49c0cd401e967952c0dec9a5753dd53313b7bd817fHo-Eun Ryu                     int *frame_length, int *frame_duration);
50ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
51ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu/* end of MP3 */
52ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
53918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryu/*
54918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryu * MP4
55918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryu */
56918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryu
57918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryuint audio_specific_config_parse(const unsigned char *buffer,
58918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryu                                int *aot, int *frequency, int *channel);
59918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryu
60e7660662764bf407dcd3c569bc52b170c5753391Ho-Eun Ryuint audio_specific_config_bitcoding(unsigned char *buffer,
61e7660662764bf407dcd3c569bc52b170c5753391Ho-Eun Ryu                                    int aot, int frequency, int channel);
62e7660662764bf407dcd3c569bc52b170c5753391Ho-Eun Ryu
63918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryu/* end of MP4 */
64918ef361f272e1de80167545857c23b6060775d6Ho-Eun Ryu
65ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#ifdef __cplusplus
66ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu} /* extern "C" */
67ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#endif
68ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu
69ac662a0b5dd48484b95c3e54210624d19ff1adb1Ho-Eun Ryu#endif /* ___WRS_OMXIL_AUDIO_PARSER */
70