| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| /** |
| ************************************************************************* |
| * @file M4_Common.h |
| * @brief Common data structure between shells |
| * @note |
| ************************************************************************* |
| */ |
| #ifndef __M4_COMMON_H__ |
| #define __M4_COMMON_H__ |
| |
| #include "M4OSA_Types.h" |
| |
| /** |
| ************************************************************************ |
| * structure _parameterSet |
| * @brief This structure defines the structure of parameters for the avc |
| * decoder specific info |
| * @note |
| ************************************************************************ |
| */ |
| typedef struct _parameterSet |
| { |
| M4OSA_UInt16 m_length; /* Number of items*/ |
| M4OSA_UInt8* m_pParameterSetUnit; /* Array of items*/ |
| } ParameterSet ; |
| |
| /** |
| ************************************************************************ |
| * structure _avcSpecificInfo |
| * @brief This structure defines the structure of specific info for the avc decoder |
| * @note |
| ************************************************************************ |
| */ |
| typedef struct _avcSpecificInfo |
| { |
| M4OSA_UInt8 m_nalUnitLength; /* length in bytes of the NALUnitLength |
| field in a AVC sample */ |
| M4OSA_UInt8 m_numOfSequenceParameterSets; /* Number of sequence parameter sets*/ |
| M4OSA_UInt8 m_numOfPictureParameterSets; /* Number of picture parameter sets*/ |
| ParameterSet *m_pSequenceParameterSet; /* Sequence parameter sets array*/ |
| ParameterSet *m_pPictureParameterSet; /* Picture parameter sets array*/ |
| } AvcSpecificInfo ; |
| |
| /** |
| ************************************************************************ |
| * structure M4_SynthesisAudioInfo |
| * @brief This structure contains specific pointers used for synthesis audio format |
| ************************************************************************ |
| */ |
| typedef struct _synthesisAudioInfo |
| { |
| M4OSA_Void* m_pInputBuf; |
| M4OSA_Void* m_pInputInfo; |
| M4OSA_UInt16 m_uiNbSubFramePerStep; |
| M4OSA_UInt32 m_uiUsedBytes; |
| } M4_SynthesisAudioInfo; |
| |
| |
| /* |
| ************************************************************************ |
| * enum M4_AACDownsamplingMode |
| * @brief This enum states modes for Down sampling |
| ************************************************************************ |
| */ |
| typedef enum |
| { |
| AAC_kDS_OFF = 0, /**< No Down sampling */ |
| AAC_kDS_BY_2 = 1, /**< Down sampling by 2 |
| Profile = AAC : |
| output sampling rate = aac_samp_freq/2 |
| Profile = HE_AAC and input is AAC: |
| Output sampling rate = aac_samp_freq.(No downsamping). |
| Profile = HE_AAC and input is HE_AAC: |
| Output sampling rate = aac_samp_freq (Downsampling |
| occurs in SBR tool). |
| case profile = HE_AAC_v2 : |
| Not Supported */ |
| AAC_kDS_BY_3 = 2, /**< Down sampling by 3 - only for AAC profile */ |
| AAC_kDS_BY_4 = 3, /**< Down sampling by 4 - only for AAC profile */ |
| AAC_kDS_BY_8 = 4 /**< Down sampling by 8 - only for AAC profile */ |
| |
| } M4_AACDownsamplingMode; |
| |
| |
| /* |
| ************************************************************************ |
| * enum M4_AACOutputMode |
| * @brief This enum defines the output mode |
| ************************************************************************ |
| */ |
| typedef enum |
| { |
| AAC_kMono = 0, /**< Output is Mono */ |
| AAC_kStereo = 1 /**< Output is Stereo */ |
| } M4_AACOutputMode; |
| |
| |
| /* |
| ************************************************************************ |
| * enum M4_AACDecProfile |
| * @brief This enum defines the AAC decoder profile |
| ************************************************************************ |
| */ |
| typedef enum |
| { |
| AAC_kAAC = 0, /**< AAC profile (only AAC LC object are supported) */ |
| AAC_kHE_AAC = 1, /**< HE AAC or AAC+ profile (SBR in LP Mode) */ |
| AAC_kHE_AAC_v2 = 2 /**< HE AAC v2 or Enhanced AAC+ profile (SBR Tool in HQ Mode) */ |
| } M4_AACDecProfile; |
| |
| |
| /** |
| ************************************************************************ |
| * structure M4_AacDecoderConfig |
| * @brief This structure defines specific settings according to |
| * the user requirements |
| ************************************************************************ |
| */ |
| typedef struct |
| { |
| M4_AACDecProfile m_AACDecoderProfile; |
| M4_AACDownsamplingMode m_DownSamplingMode; |
| M4_AACOutputMode m_OutputMode; |
| |
| } M4_AacDecoderConfig; |
| |
| |
| /** |
| ************************************************************************ |
| * structure M4READER_AudioSbrUserdata |
| * @brief This structure defines the user's data needed to decode the |
| * AACplus stream |
| * @note The field m_pFirstAU is used in case of local files and |
| * the field m_bIsSbrEnabled is used in streaming case. |
| ************************************************************************ |
| */ |
| typedef struct |
| { |
| M4OSA_Void* m_pFirstAU; /**< The first AU from where SBR data are |
| extracted (local file case)*/ |
| M4OSA_Bool m_bIsSbrEnabled; /**< A boolean that indicates if the stream is |
| AACplus (streaming case)*/ |
| M4_AacDecoderConfig* m_pAacDecoderUserConfig;/**< Decoder specific user setting */ |
| |
| } M4READER_AudioSbrUserdata; |
| |
| #endif /* __M4_COMMON_H__*/ |
| |