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* sourceEventSem;
00049 tsem_t* eofSem;
00050 tsem_t* colorconvEventSem;
00051 tsem_t* fbdevSinkEventSem;
00052 OMX_HANDLETYPE videosrchandle;
00053 OMX_HANDLETYPE colorconv_handle;
00054 OMX_HANDLETYPE fbdev_sink_handle;
00055 }appPrivateType;
00056
00057 #define BUFFER_IN_SIZE 4096
00058
00060 #define VERSIONMAJOR 1
00061 #define VERSIONMINOR 1
00062 #define VERSIONREVISION 0
00063 #define VERSIONSTEP 0
00064
00065
00066 OMX_ERRORTYPE videosrcEventHandler(
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 videosrcFillBufferDone(
00075 OMX_OUT OMX_HANDLETYPE hComponent,
00076 OMX_OUT OMX_PTR pAppData,
00077 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00078
00080 OMX_ERRORTYPE colorconvEventHandler(
00081 OMX_OUT OMX_HANDLETYPE hComponent,
00082 OMX_OUT OMX_PTR pAppData,
00083 OMX_OUT OMX_EVENTTYPE eEvent,
00084 OMX_OUT OMX_U32 Data1,
00085 OMX_OUT OMX_U32 Data2,
00086 OMX_OUT OMX_PTR pEventData);
00087
00088 OMX_ERRORTYPE colorconvEmptyBufferDone(
00089 OMX_OUT OMX_HANDLETYPE hComponent,
00090 OMX_OUT OMX_PTR pAppData,
00091 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00092
00093 OMX_ERRORTYPE colorconvFillBufferDone(
00094 OMX_OUT OMX_HANDLETYPE hComponent,
00095 OMX_OUT OMX_PTR pAppData,
00096 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00097
00099 OMX_ERRORTYPE fb_sinkEventHandler(
00100 OMX_OUT OMX_HANDLETYPE hComponent,
00101 OMX_OUT OMX_PTR pAppData,
00102 OMX_OUT OMX_EVENTTYPE eEvent,
00103 OMX_OUT OMX_U32 Data1,
00104 OMX_OUT OMX_U32 Data2,
00105 OMX_OUT OMX_PTR pEventData);
00106
00107 OMX_ERRORTYPE fb_sinkEmptyBufferDone(
00108 OMX_OUT OMX_HANDLETYPE hComponent,
00109 OMX_OUT OMX_PTR pAppData,
00110 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00111
00115 void display_help();
00116
00118 int find_resolution(char* searchname);
00119
00123 int setPortParameters();
00124
00125