00001
00031 #include <stdio.h>
00032 #include <stdlib.h>
00033 #include <fcntl.h>
00034 #include <string.h>
00035 #include <pthread.h>
00036 #include <ctype.h>
00037
00038 #include <OMX_Core.h>
00039 #include <OMX_Component.h>
00040 #include <OMX_Types.h>
00041 #include <OMX_Video.h>
00042
00043 #include <tsemaphore.h>
00044 #include <user_debug_levels.h>
00045
00046
00047 typedef struct appPrivateType{
00048 tsem_t* decoderEventSem;
00049 tsem_t* eofSem;
00050 tsem_t* colorconvEventSem;
00051 tsem_t* fbdevSinkEventSem;
00052 OMX_HANDLETYPE videodechandle;
00053 OMX_HANDLETYPE colorconv_handle;
00054 OMX_HANDLETYPE fbdev_sink_handle;
00055 }appPrivateType;
00056
00057 #define BUFFER_IN_SIZE 2*8192
00058
00060 #define VERSIONMAJOR 1
00061 #define VERSIONMINOR 1
00062 #define VERSIONREVISION 0
00063 #define VERSIONSTEP 0
00064
00065
00066 OMX_ERRORTYPE videodecEventHandler(
00067 OMX_OUT OMX_HANDLETYPE hComponent,
00068 OMX_OUT OMX_PTR pAppData,
00069 OMX_OUT OMX_EVENTTYPE eEvent,
00070 OMX_OUT OMX_U32 Data1,
00071 OMX_OUT OMX_U32 Data2,
00072 OMX_OUT OMX_PTR pEventData);
00073
00074 OMX_ERRORTYPE videodecEmptyBufferDone(
00075 OMX_OUT OMX_HANDLETYPE hComponent,
00076 OMX_OUT OMX_PTR pAppData,
00077 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00078
00079 OMX_ERRORTYPE videodecFillBufferDone(
00080 OMX_OUT OMX_HANDLETYPE hComponent,
00081 OMX_OUT OMX_PTR pAppData,
00082 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00083
00085 OMX_ERRORTYPE colorconvEventHandler(
00086 OMX_OUT OMX_HANDLETYPE hComponent,
00087 OMX_OUT OMX_PTR pAppData,
00088 OMX_OUT OMX_EVENTTYPE eEvent,
00089 OMX_OUT OMX_U32 Data1,
00090 OMX_OUT OMX_U32 Data2,
00091 OMX_OUT OMX_PTR pEventData);
00092
00093 OMX_ERRORTYPE colorconvEmptyBufferDone(
00094 OMX_OUT OMX_HANDLETYPE hComponent,
00095 OMX_OUT OMX_PTR pAppData,
00096 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00097
00098 OMX_ERRORTYPE colorconvFillBufferDone(
00099 OMX_OUT OMX_HANDLETYPE hComponent,
00100 OMX_OUT OMX_PTR pAppData,
00101 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00102
00104 OMX_ERRORTYPE fb_sinkEventHandler(
00105 OMX_OUT OMX_HANDLETYPE hComponent,
00106 OMX_OUT OMX_PTR pAppData,
00107 OMX_OUT OMX_EVENTTYPE eEvent,
00108 OMX_OUT OMX_U32 Data1,
00109 OMX_OUT OMX_U32 Data2,
00110 OMX_OUT OMX_PTR pEventData);
00111
00112 OMX_ERRORTYPE fb_sinkEmptyBufferDone(
00113 OMX_OUT OMX_HANDLETYPE hComponent,
00114 OMX_OUT OMX_PTR pAppData,
00115 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00116
00120 void display_help();
00121
00123 int find_resolution(char* searchname);
00124
00128 int setPortParameters();
00129
00130