17c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* 27c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 37c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 47c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 57c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * you may not use this file except in compliance with the License. 67c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * You may obtain a copy of the License at 77c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 87c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 97c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * See the License for the specific language governing permissions and 147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * limitations under the License. 157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file M4ENCODER_AudioCommon.h 197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief VES audio encoders shell interface. 207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This file defines the types internally used by the VES to abstract audio encoders 217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef __M4ENCODER_AUDIOCOMMON_H__ 247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4ENCODER_AUDIOCOMMON_H__ 257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" { 287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */ 297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_OptionID.h" /* for M4OSA_OPTION_ID_CREATE() */ 310a389ab70db304fb840e33f33781ecc0503eae3chongteng#include "M4OSA_CoreID.h" 327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4ENCODER_AUDIO_NB_CHANNELS_MAX 2 347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* WARNING: this value must be equal to the number of samples grabbed */ 357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi//#define M4ENCODER_AUDIO_PCM_SAMPLE_NUMBER 960 /* imposed by the AAC encoder. */ 367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4ENCODER_AUDIO_PCM_SAMPLE_NUMBER 1024 /* imposed by the AAC encoder. */ 377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enumeration M4ENCODER_Audio_OptionID 427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This enum defines the core AAC shell encoder options 437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* Maximum generated AU size */ 480a389ab70db304fb840e33f33781ecc0503eae3chongteng M4ENCODER_Audio_maxAUsize = M4OSA_OPTION_ID_CREATE(M4_READ,M4ENCODER_AUDIO, 0x01) 497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_Audio_OptionID; 517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4ENCODER_SamplingFrequency 567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Thie enum defines the audio sampling frequency. 577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k8000Hz = 8000, 627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k11025Hz = 11025, 637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k12000Hz = 12000, 647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k16000Hz = 16000, 657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k22050Hz = 22050, 667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k24000Hz = 24000, 677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k32000Hz = 32000, 687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k44100Hz = 44100, 697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_k48000Hz = 48000 707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_SamplingFrequency; 717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4ENCODER_AudioFormat 767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This enum defines the audio compression formats. 777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAMRNB = 0, 827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAAC, 837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudioNULL, /**< No compression */ 847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kMP3, 857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_NB /* number of encoders, keep it as last enum entry */ 867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AudioFormat; 887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4ENCODER_ChannelNumber 927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Thie enum defines the number of audio channels. 937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kMono = 0, 987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kStereo, 997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kStereoNoInterleave 1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_ChannelNumber; 1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4ENCODER_AudioBitrate 1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Thie enum defines the avalaible bitrates. 1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_4_75_KBPS = 4750, 1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_5_15_KBPS = 5150, 1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_5_9_KBPS = 5900, 1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_6_7_KBPS = 6700, 1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_7_4_KBPS = 7400, 1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_7_95_KBPS = 7950, 1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_8_KBPS = 8000, 1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_10_2_KBPS = 10200, 1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_12_2_KBPS = 12200, 1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_16_KBPS = 16000, 1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_24_KBPS = 24000, 1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_32_KBPS = 32000, 1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_40_KBPS = 40000, 1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_48_KBPS = 48000, 1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_56_KBPS = 56000, 1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_64_KBPS = 64000, 1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_80_KBPS = 80000, 1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_96_KBPS = 96000, 1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_112_KBPS = 112000, 1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_128_KBPS = 128000, 1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_144_KBPS = 144000, 1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_160_KBPS = 160000, 1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_192_KBPS = 192000, 1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_224_KBPS = 224000, 1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_256_KBPS = 256000, 1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAudio_320_KBPS = 320000 1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AudioBitrate; 1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4ENCODER_AacRegulation 1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief The current mode of the bitrate regulation. 1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAacRegulNone = 0, /**< no bitrate regulation */ 1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAacBitReservoir /**< better quality, but more CPU consumed */ 1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AacRegulation; 1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4ENCODER_AmrSID 1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This enum defines the SID of the AMR encoder. 1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_kAmrNoSID = 0 /**< no SID */ 1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AmrSID; 1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4ENCODER_AacParams 1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines all the settings specific to the AAC encoder. 1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AacRegulation Regulation; 1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bHighSpeed; 1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bTNS; 1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bPNS; 1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bIS; 1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bMS; 1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AacParams; 1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4ENCODER_AudioParams 1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines all the settings avalaible when encoding audio. 1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct s_M4ENCODER_AudioParams 1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_SamplingFrequency Frequency; /**< the sampling frequency */ 1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_ChannelNumber ChannelNum; /**< the numbe of channels (mono, stereo, ..) */ 1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioBitrate Bitrate; /**< bitrate, see enum */ 1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioFormat Format; /**< audio compression format, AMR, AAC ... */ 1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi union { 1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AacParams AacParam; 1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AmrSID AmrSID; 1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } SpecifParam; /**< the audio encoder specific parameters */ 1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AudioParams; 1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4ENCODER_AudioDecSpecificInfo 1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure describes the decoder specific info buffer. 2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pInfo; /**< the buffer adress */ 2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 infoSize; /**< the buffer size in bytes */ 2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AudioDecSpecificInfo; 2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4ENCODER_AudioBuffer 2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines the data buffer. 2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< the table of buffers (unused buffers are set to NULL) */ 2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pTableBuffer[M4ENCODER_AUDIO_NB_CHANNELS_MAX]; 2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< the table of the size of corresponding buffer at same index */ 2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 pTableBufferSize[M4ENCODER_AUDIO_NB_CHANNELS_MAX]; 2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AudioBuffer; 2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4AE_init) (M4OSA_Context* hContext, M4OSA_Void* pUserData); 2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4AE_cleanUp) (M4OSA_Context pContext); 2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4AE_open) (M4OSA_Context pContext, M4ENCODER_AudioParams *params, 2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioDecSpecificInfo *decSpecInfo, 2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Context grabberContext); 2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4AE_close) (M4OSA_Context pContext); 2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4AE_step) (M4OSA_Context pContext, M4ENCODER_AudioBuffer *inBuffer, 2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioBuffer *outBuffer); 2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4AE_getOption) (M4OSA_Context pContext, M4OSA_OptionID option, 2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DataOption *valuePtr); 2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4ENCODER_AudioGlobalInterface 2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Defines all the functions required for an audio encoder shell. 2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct _M4ENCODER_AudioGlobalInterface 2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AE_init* pFctInit; 2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AE_cleanUp* pFctCleanUp; 2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AE_open* pFctOpen; 2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AE_close* pFctClose; 2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AE_step* pFctStep; 2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AE_getOption* pFctGetOption; 2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4ENCODER_AudioGlobalInterface; 2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */ 2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /*__M4ENCODER_AUDIOCOMMON_H__*/ 2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 255