Exynos_OMX_Adec.h revision 20d3e6e3118a6e19627296e9247e948d54ec0fb8
1/* 2 * 3 * Copyright 2010 Samsung Electronics S.LSI Co. LTD 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18/* 19 * @file Exynos_OMX_Adec.h 20 * @brief 21 * @author Yunji Kim (yunji.kim@samsung.com) 22 * 23 * @version 1.1.0 24 * @history 25 * 2011.10.18 : Create 26 */ 27 28#ifndef EXYNOS_OMX_AUDIO_DECODE 29#define EXYNOS_OMX_AUDIO_DECODE 30 31#include "OMX_Component.h" 32#include "Exynos_OMX_Def.h" 33#include "Exynos_OSAL_Queue.h" 34#include "Exynos_OMX_Baseport.h" 35#include "Exynos_OMX_Basecomponent.h" 36 37#define MAX_AUDIO_INPUTBUFFER_NUM 2 38#define MAX_AUDIO_OUTPUTBUFFER_NUM 2 39 40#define DEFAULT_AUDIO_INPUT_BUFFER_SIZE (16 * 1024) 41#define DEFAULT_AUDIO_OUTPUT_BUFFER_SIZE (32 * 1024) 42 43#define DEFAULT_AUDIO_SAMPLING_FREQ 44100 44#define DEFAULT_AUDIO_CHANNELS_NUM 2 45#define DEFAULT_AUDIO_BIT_PER_SAMPLE 16 46 47#define INPUT_PORT_SUPPORTFORMAT_NUM_MAX 1 48#define OUTPUT_PORT_SUPPORTFORMAT_NUM_MAX 1 49 50typedef struct _SRP_DEC_INPUT_BUFFER 51{ 52 void *PhyAddr; // physical address 53 void *VirAddr; // virtual address 54 int bufferSize; // input buffer alloc size 55 int dataSize; // Data length 56} SRP_DEC_INPUT_BUFFER; 57 58typedef struct _EXYNOS_OMX_AUDIODEC_COMPONENT 59{ 60 OMX_HANDLETYPE hCodecHandle; 61 62 OMX_BOOL bFirstFrame; 63 OMX_PTR pInputBuffer; 64 SRP_DEC_INPUT_BUFFER SRPDecInputBuffer[MAX_AUDIO_INPUTBUFFER_NUM]; 65 OMX_U32 indexInputBuffer; 66} EXYNOS_OMX_AUDIODEC_COMPONENT; 67 68 69#ifdef __cplusplus 70extern "C" { 71#endif 72 73OMX_ERRORTYPE Exynos_OMX_UseBuffer( 74 OMX_IN OMX_HANDLETYPE hComponent, 75 OMX_INOUT OMX_BUFFERHEADERTYPE **ppBufferHdr, 76 OMX_IN OMX_U32 nPortIndex, 77 OMX_IN OMX_PTR pAppPrivate, 78 OMX_IN OMX_U32 nSizeBytes, 79 OMX_IN OMX_U8 *pBuffer); 80OMX_ERRORTYPE Exynos_OMX_AllocateBuffer( 81 OMX_IN OMX_HANDLETYPE hComponent, 82 OMX_INOUT OMX_BUFFERHEADERTYPE **ppBuffer, 83 OMX_IN OMX_U32 nPortIndex, 84 OMX_IN OMX_PTR pAppPrivate, 85 OMX_IN OMX_U32 nSizeBytes); 86OMX_ERRORTYPE Exynos_OMX_FreeBuffer( 87 OMX_IN OMX_HANDLETYPE hComponent, 88 OMX_IN OMX_U32 nPortIndex, 89 OMX_IN OMX_BUFFERHEADERTYPE *pBufferHdr); 90OMX_ERRORTYPE Exynos_OMX_AllocateTunnelBuffer( 91 EXYNOS_OMX_BASEPORT *pOMXBasePort, 92 OMX_U32 nPortIndex); 93OMX_ERRORTYPE Exynos_OMX_FreeTunnelBuffer( 94 EXYNOS_OMX_BASEPORT *pOMXBasePort, 95 OMX_U32 nPortIndex); 96OMX_ERRORTYPE Exynos_OMX_ComponentTunnelRequest( 97 OMX_IN OMX_HANDLETYPE hComp, 98 OMX_IN OMX_U32 nPort, 99 OMX_IN OMX_HANDLETYPE hTunneledComp, 100 OMX_IN OMX_U32 nTunneledPort, 101 OMX_INOUT OMX_TUNNELSETUPTYPE *pTunnelSetup); 102OMX_ERRORTYPE Exynos_OMX_BufferProcess(OMX_HANDLETYPE hComponent); 103OMX_ERRORTYPE Exynos_OMX_AudioDecodeGetParameter( 104 OMX_IN OMX_HANDLETYPE hComponent, 105 OMX_IN OMX_INDEXTYPE nParamIndex, 106 OMX_INOUT OMX_PTR ComponentParameterStructure); 107OMX_ERRORTYPE Exynos_OMX_AudioDecodeSetParameter( 108 OMX_IN OMX_HANDLETYPE hComponent, 109 OMX_IN OMX_INDEXTYPE nIndex, 110 OMX_IN OMX_PTR ComponentParameterStructure); 111OMX_ERRORTYPE Exynos_OMX_AudioDecodeGetConfig( 112 OMX_HANDLETYPE hComponent, 113 OMX_INDEXTYPE nIndex, 114 OMX_PTR pComponentConfigStructure); 115OMX_ERRORTYPE Exynos_OMX_AudioDecodeSetConfig( 116 OMX_HANDLETYPE hComponent, 117 OMX_INDEXTYPE nIndex, 118 OMX_PTR pComponentConfigStructure); 119OMX_ERRORTYPE Exynos_OMX_AudioDecodeGetExtensionIndex( 120 OMX_IN OMX_HANDLETYPE hComponent, 121 OMX_IN OMX_STRING cParameterName, 122 OMX_OUT OMX_INDEXTYPE *pIndexType); 123OMX_ERRORTYPE Exynos_OMX_AudioDecodeComponentInit(OMX_IN OMX_HANDLETYPE hComponent); 124OMX_ERRORTYPE Exynos_OMX_AudioDecodeComponentDeinit(OMX_IN OMX_HANDLETYPE hComponent); 125OMX_BOOL Exynos_Check_BufferProcess_State(EXYNOS_OMX_BASECOMPONENT *pExynosComponent); 126inline void Exynos_UpdateFrameSize(OMX_COMPONENTTYPE *pOMXComponent); 127 128#ifdef __cplusplus 129} 130#endif 131 132#endif /* EXYNOS_OMX_AUDIO_DECODE */ 133