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