00001
00039 #ifndef __OMXPARSERTEST_H__
00040 #define __OMXPARSERTEST_H__
00041
00042 #include <stdio.h>
00043 #include <stdlib.h>
00044 #include <fcntl.h>
00045 #include <string.h>
00046 #include <pthread.h>
00047 #include <ctype.h>
00048
00049 #include <OMX_Core.h>
00050 #include <OMX_Component.h>
00051 #include <OMX_Types.h>
00052 #include <OMX_Video.h>
00053 #include <OMX_Audio.h>
00054
00055 #include <tsemaphore.h>
00056 #include <user_debug_levels.h>
00057
00058 typedef struct appPrivateType{
00059 tsem_t* parser3gpEventSem;
00060 tsem_t* videoDecoderEventSem;
00061 tsem_t* colorconvEventSem;
00062 tsem_t* fbdevSinkEventSem;
00063 tsem_t* audioDecoderEventSem;
00064 tsem_t* audioSinkEventSem;
00065 tsem_t* volumeEventSem;
00066 tsem_t* eofSem;
00067 OMX_HANDLETYPE videodechandle;
00068 OMX_HANDLETYPE colorconv_handle;
00069 OMX_HANDLETYPE videosinkhandle;
00070 OMX_HANDLETYPE audiodechandle;
00071 OMX_HANDLETYPE audiosinkhandle;
00072 OMX_HANDLETYPE volumehandle;
00073 OMX_HANDLETYPE parser3gphandle;
00074 }appPrivateType;
00075
00076 #define BUFFER_IN_SIZE 4096
00077 #define BUFFER_OUT_SIZE 640*480*3 // 1382400 //921600 -- the output buffer size is chosen to support upto VGA picture: 640*480*3
00078
00080 #define VERSIONMAJOR 1
00081 #define VERSIONMINOR 1
00082 #define VERSIONREVISION 0
00083 #define VERSIONSTEP 0
00084
00085
00086 OMX_ERRORTYPE videodecEventHandler(
00087 OMX_OUT OMX_HANDLETYPE hComponent,
00088 OMX_OUT OMX_PTR pAppData,
00089 OMX_OUT OMX_EVENTTYPE eEvent,
00090 OMX_OUT OMX_U32 Data1,
00091 OMX_OUT OMX_U32 Data2,
00092 OMX_OUT OMX_PTR pEventData);
00093
00094 OMX_ERRORTYPE videodecEmptyBufferDone(
00095 OMX_OUT OMX_HANDLETYPE hComponent,
00096 OMX_OUT OMX_PTR pAppData,
00097 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00098
00099 OMX_ERRORTYPE videodecFillBufferDone(
00100 OMX_OUT OMX_HANDLETYPE hComponent,
00101 OMX_OUT OMX_PTR pAppData,
00102 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00103
00105 OMX_ERRORTYPE colorconvEventHandler(
00106 OMX_OUT OMX_HANDLETYPE hComponent,
00107 OMX_OUT OMX_PTR pAppData,
00108 OMX_OUT OMX_EVENTTYPE eEvent,
00109 OMX_OUT OMX_U32 Data1,
00110 OMX_OUT OMX_U32 Data2,
00111 OMX_OUT OMX_PTR pEventData);
00112
00113 OMX_ERRORTYPE colorconvEmptyBufferDone(
00114 OMX_OUT OMX_HANDLETYPE hComponent,
00115 OMX_OUT OMX_PTR pAppData,
00116 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00117
00118 OMX_ERRORTYPE colorconvFillBufferDone(
00119 OMX_OUT OMX_HANDLETYPE hComponent,
00120 OMX_OUT OMX_PTR pAppData,
00121 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00122
00124 OMX_ERRORTYPE fb_sinkEventHandler(
00125 OMX_OUT OMX_HANDLETYPE hComponent,
00126 OMX_OUT OMX_PTR pAppData,
00127 OMX_OUT OMX_EVENTTYPE eEvent,
00128 OMX_OUT OMX_U32 Data1,
00129 OMX_OUT OMX_U32 Data2,
00130 OMX_OUT OMX_PTR pEventData);
00131
00132 OMX_ERRORTYPE fb_sinkEmptyBufferDone(
00133 OMX_OUT OMX_HANDLETYPE hComponent,
00134 OMX_OUT OMX_PTR pAppData,
00135 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00136
00138 OMX_ERRORTYPE parser3gpEventHandler(
00139 OMX_OUT OMX_HANDLETYPE hComponent,
00140 OMX_OUT OMX_PTR pAppData,
00141 OMX_OUT OMX_EVENTTYPE eEvent,
00142 OMX_OUT OMX_U32 Data1,
00143 OMX_OUT OMX_U32 Data2,
00144 OMX_OUT OMX_PTR pEventData);
00145
00146 OMX_ERRORTYPE parser3gpFillBufferDone(
00147 OMX_OUT OMX_HANDLETYPE hComponent,
00148 OMX_OUT OMX_PTR pAppData,
00149 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00150
00152 OMX_ERRORTYPE audiodecEventHandler(
00153 OMX_OUT OMX_HANDLETYPE hComponent,
00154 OMX_OUT OMX_PTR pAppData,
00155 OMX_OUT OMX_EVENTTYPE eEvent,
00156 OMX_OUT OMX_U32 Data1,
00157 OMX_OUT OMX_U32 Data2,
00158 OMX_OUT OMX_PTR pEventData);
00159
00160 OMX_ERRORTYPE audiodecEmptyBufferDone(
00161 OMX_OUT OMX_HANDLETYPE hComponent,
00162 OMX_OUT OMX_PTR pAppData,
00163 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00164
00165 OMX_ERRORTYPE audiodecFillBufferDone(
00166 OMX_OUT OMX_HANDLETYPE hComponent,
00167 OMX_OUT OMX_PTR pAppData,
00168 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00169
00171 OMX_ERRORTYPE volumeEventHandler(
00172 OMX_OUT OMX_HANDLETYPE hComponent,
00173 OMX_OUT OMX_PTR pAppData,
00174 OMX_OUT OMX_EVENTTYPE eEvent,
00175 OMX_OUT OMX_U32 Data1,
00176 OMX_OUT OMX_U32 Data2,
00177 OMX_OUT OMX_PTR pEventData);
00178
00179 OMX_ERRORTYPE volumeEmptyBufferDone(
00180 OMX_OUT OMX_HANDLETYPE hComponent,
00181 OMX_OUT OMX_PTR pAppData,
00182 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00183
00184 OMX_ERRORTYPE volumeFillBufferDone(
00185 OMX_OUT OMX_HANDLETYPE hComponent,
00186 OMX_OUT OMX_PTR pAppData,
00187 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00188
00190 OMX_ERRORTYPE audiosinkEventHandler(
00191 OMX_OUT OMX_HANDLETYPE hComponent,
00192 OMX_OUT OMX_PTR pAppData,
00193 OMX_OUT OMX_EVENTTYPE eEvent,
00194 OMX_OUT OMX_U32 Data1,
00195 OMX_OUT OMX_U32 Data2,
00196 OMX_OUT OMX_PTR pEventData);
00197
00198 OMX_ERRORTYPE audiosinkEmptyBufferDone(
00199 OMX_OUT OMX_HANDLETYPE hComponent,
00200 OMX_OUT OMX_PTR pAppData,
00201 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00202
00204 void display_help();
00205
00209 int setPortParameters();
00210
00211 #endif
00212