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* clockEventSem;
00061 tsem_t* videoDecoderEventSem;
00062 tsem_t* colorconvEventSem;
00063 tsem_t* fbdevSinkEventSem;
00064 tsem_t* audioDecoderEventSem;
00065 tsem_t* audioSinkEventSem;
00066 tsem_t* volumeEventSem;
00067 tsem_t* eofSem;
00068 OMX_HANDLETYPE videodechandle;
00069 OMX_HANDLETYPE colorconv_handle;
00070 OMX_HANDLETYPE videosinkhandle;
00071 OMX_HANDLETYPE audiodechandle;
00072 OMX_HANDLETYPE audiosinkhandle;
00073 OMX_HANDLETYPE volumehandle;
00074 OMX_HANDLETYPE parser3gphandle;
00075 OMX_HANDLETYPE clocksrchandle;
00076 }appPrivateType;
00077
00078 #define BUFFER_IN_SIZE 4096
00079 #define BUFFER_OUT_SIZE 640*480*3 // 1382400 //921600 -- the output buffer size is chosen to support upto VGA picture: 640*480*3
00080
00082 #define VERSIONMAJOR 1
00083 #define VERSIONMINOR 1
00084 #define VERSIONREVISION 0
00085 #define VERSIONSTEP 0
00086
00087
00088 OMX_ERRORTYPE videodecEventHandler(
00089 OMX_OUT OMX_HANDLETYPE hComponent,
00090 OMX_OUT OMX_PTR pAppData,
00091 OMX_OUT OMX_EVENTTYPE eEvent,
00092 OMX_OUT OMX_U32 Data1,
00093 OMX_OUT OMX_U32 Data2,
00094 OMX_OUT OMX_PTR pEventData);
00095
00096 OMX_ERRORTYPE videodecEmptyBufferDone(
00097 OMX_OUT OMX_HANDLETYPE hComponent,
00098 OMX_OUT OMX_PTR pAppData,
00099 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00100
00101 OMX_ERRORTYPE videodecFillBufferDone(
00102 OMX_OUT OMX_HANDLETYPE hComponent,
00103 OMX_OUT OMX_PTR pAppData,
00104 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00105
00107 OMX_ERRORTYPE colorconvEventHandler(
00108 OMX_OUT OMX_HANDLETYPE hComponent,
00109 OMX_OUT OMX_PTR pAppData,
00110 OMX_OUT OMX_EVENTTYPE eEvent,
00111 OMX_OUT OMX_U32 Data1,
00112 OMX_OUT OMX_U32 Data2,
00113 OMX_OUT OMX_PTR pEventData);
00114
00115 OMX_ERRORTYPE colorconvEmptyBufferDone(
00116 OMX_OUT OMX_HANDLETYPE hComponent,
00117 OMX_OUT OMX_PTR pAppData,
00118 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00119
00120 OMX_ERRORTYPE colorconvFillBufferDone(
00121 OMX_OUT OMX_HANDLETYPE hComponent,
00122 OMX_OUT OMX_PTR pAppData,
00123 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00124
00126 OMX_ERRORTYPE fb_sinkEventHandler(
00127 OMX_OUT OMX_HANDLETYPE hComponent,
00128 OMX_OUT OMX_PTR pAppData,
00129 OMX_OUT OMX_EVENTTYPE eEvent,
00130 OMX_OUT OMX_U32 Data1,
00131 OMX_OUT OMX_U32 Data2,
00132 OMX_OUT OMX_PTR pEventData);
00133
00134 OMX_ERRORTYPE fb_sinkEmptyBufferDone(
00135 OMX_OUT OMX_HANDLETYPE hComponent,
00136 OMX_OUT OMX_PTR pAppData,
00137 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00138
00140 OMX_ERRORTYPE parser3gpEventHandler(
00141 OMX_OUT OMX_HANDLETYPE hComponent,
00142 OMX_OUT OMX_PTR pAppData,
00143 OMX_OUT OMX_EVENTTYPE eEvent,
00144 OMX_OUT OMX_U32 Data1,
00145 OMX_OUT OMX_U32 Data2,
00146 OMX_OUT OMX_PTR pEventData);
00147
00148 OMX_ERRORTYPE parser3gpFillBufferDone(
00149 OMX_OUT OMX_HANDLETYPE hComponent,
00150 OMX_OUT OMX_PTR pAppData,
00151 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00152
00153 OMX_ERRORTYPE clocksrcEventHandler(
00154 OMX_OUT OMX_HANDLETYPE hComponent,
00155 OMX_OUT OMX_PTR pAppData,
00156 OMX_OUT OMX_EVENTTYPE eEvent,
00157 OMX_OUT OMX_U32 Data1,
00158 OMX_OUT OMX_U32 Data2,
00159 OMX_OUT OMX_PTR pEventData);
00160
00161 OMX_ERRORTYPE clocksrcFillBufferDone(
00162 OMX_OUT OMX_HANDLETYPE hComponent,
00163 OMX_OUT OMX_PTR pAppData,
00164 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00165
00166
00168 OMX_ERRORTYPE audiodecEventHandler(
00169 OMX_OUT OMX_HANDLETYPE hComponent,
00170 OMX_OUT OMX_PTR pAppData,
00171 OMX_OUT OMX_EVENTTYPE eEvent,
00172 OMX_OUT OMX_U32 Data1,
00173 OMX_OUT OMX_U32 Data2,
00174 OMX_OUT OMX_PTR pEventData);
00175
00176 OMX_ERRORTYPE audiodecEmptyBufferDone(
00177 OMX_OUT OMX_HANDLETYPE hComponent,
00178 OMX_OUT OMX_PTR pAppData,
00179 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00180
00181 OMX_ERRORTYPE audiodecFillBufferDone(
00182 OMX_OUT OMX_HANDLETYPE hComponent,
00183 OMX_OUT OMX_PTR pAppData,
00184 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00185
00187 OMX_ERRORTYPE volumeEventHandler(
00188 OMX_OUT OMX_HANDLETYPE hComponent,
00189 OMX_OUT OMX_PTR pAppData,
00190 OMX_OUT OMX_EVENTTYPE eEvent,
00191 OMX_OUT OMX_U32 Data1,
00192 OMX_OUT OMX_U32 Data2,
00193 OMX_OUT OMX_PTR pEventData);
00194
00195 OMX_ERRORTYPE volumeEmptyBufferDone(
00196 OMX_OUT OMX_HANDLETYPE hComponent,
00197 OMX_OUT OMX_PTR pAppData,
00198 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00199
00200 OMX_ERRORTYPE volumeFillBufferDone(
00201 OMX_OUT OMX_HANDLETYPE hComponent,
00202 OMX_OUT OMX_PTR pAppData,
00203 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00204
00206 OMX_ERRORTYPE audiosinkEventHandler(
00207 OMX_OUT OMX_HANDLETYPE hComponent,
00208 OMX_OUT OMX_PTR pAppData,
00209 OMX_OUT OMX_EVENTTYPE eEvent,
00210 OMX_OUT OMX_U32 Data1,
00211 OMX_OUT OMX_U32 Data2,
00212 OMX_OUT OMX_PTR pEventData);
00213
00214 OMX_ERRORTYPE audiosinkEmptyBufferDone(
00215 OMX_OUT OMX_HANDLETYPE hComponent,
00216 OMX_OUT OMX_PTR pAppData,
00217 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00218
00220 void display_help();
00221
00225 int setPortParameters();
00226
00227 #endif
00228