omx_vorbisdec_component.h

Go to the documentation of this file.
00001 
00031 #ifndef _OMX_VORBISDEC_COMPONENT_H_
00032 #define _OMX_VORBISDEC_COMPONENT_H_
00033 
00034 #include <OMX_Types.h>
00035 #include <OMX_Component.h>
00036 #include <OMX_Core.h>
00037 #include <pthread.h>
00038 #include <stdlib.h>
00039 #include <string.h>
00040 #include <omx_base_filter.h>
00041 
00042 /* Specific include files for vorbis decoding */
00043 #include <vorbis/codec.h>
00044 #include <math.h>
00045 
00046 #define AUDIO_DEC_BASE_NAME "OMX.st.audio_decoder"
00047 #define AUDIO_DEC_VORBIS_NAME "OMX.st.audio_decoder.ogg.single"
00048 #define AUDIO_DEC_VORBIS_ROLE "audio_decoder.ogg"
00049 
00052 DERIVEDCLASS(omx_vorbisdec_component_PrivateType, omx_base_filter_PrivateType)
00053 #define omx_vorbisdec_component_PrivateType_FIELDS omx_base_filter_PrivateType_FIELDS \
00054 \
00055   tsem_t* avCodecSyncSem; \
00056  \
00057   OMX_AUDIO_PARAM_VORBISTYPE pAudioVorbis;  \
00058   \
00059   OMX_AUDIO_PARAM_PCMMODETYPE pAudioPcmMode;  \
00060  \
00061   OMX_U16 minBufferLength; \
00062  \
00063   OMX_U8* inputCurrBuffer;\
00064  \
00065   OMX_U32 inputCurrLength;\
00066  \
00067   OMX_U8* internalOutputBuffer;\
00068  \
00069   OMX_S32 packetNumber;\
00070  \
00071   OMX_S32 positionInOutBuf; \
00072  \
00073   OMX_S32 isNewBuffer;  \
00074  \
00075   OMX_U32 audio_coding_type;   \
00076  \
00077   ogg_sync_state oy; \
00078  \
00079   ogg_stream_state os; \
00080  \
00081   ogg_page og; \
00082  \
00083   ogg_packet op; \
00084  \
00085   vorbis_info vi; \
00086  \
00087   vorbis_comment vc; \
00088  \
00089   vorbis_dsp_state vd; \
00090  \
00091   vorbis_block vb; \
00092  \
00093   OMX_S32 convsize;
00094 ENDCLASS(omx_vorbisdec_component_PrivateType)
00095 
00096 /* Component private entry points declaration */
00097 OMX_ERRORTYPE omx_vorbisdec_component_Constructor(OMX_COMPONENTTYPE *openmaxStandComp,OMX_STRING cComponentName);
00098 OMX_ERRORTYPE omx_vorbisdec_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp);
00099 OMX_ERRORTYPE omx_vorbisdec_component_Init(OMX_COMPONENTTYPE *openmaxStandComp);
00100 OMX_ERRORTYPE omx_vorbisdec_component_Deinit(OMX_COMPONENTTYPE *openmaxStandComp);
00101 OMX_ERRORTYPE omx_vorbis_decoder_MessageHandler(OMX_COMPONENTTYPE*,internalRequestMessageType*);
00102   
00103 void omx_vorbisdec_component_BufferMgmtCallbackVorbis(
00104   OMX_COMPONENTTYPE *openmaxStandComp,
00105   OMX_BUFFERHEADERTYPE* inputbuffer,
00106   OMX_BUFFERHEADERTYPE* outputbuffer);
00107 
00108 OMX_ERRORTYPE omx_vorbisdec_component_GetParameter(
00109   OMX_IN  OMX_HANDLETYPE hComponent,
00110   OMX_IN  OMX_INDEXTYPE nParamIndex,
00111   OMX_INOUT OMX_PTR ComponentParameterStructure);
00112 
00113 OMX_ERRORTYPE omx_vorbisdec_component_SetParameter(
00114   OMX_IN  OMX_HANDLETYPE hComponent,
00115   OMX_IN  OMX_INDEXTYPE nParamIndex,
00116   OMX_IN  OMX_PTR ComponentParameterStructure);
00117 
00118 void omx_vorbisdec_component_SetInternalParameters(OMX_COMPONENTTYPE *openmaxStandComp);
00119 
00120 
00121 #endif

Generated for OpenMAX Bellagio rel. 0.3.5-svn by  doxygen 1.5.1
SourceForge.net Logo