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 #include <unistd.h>
00038
00039 #include <OMX_Core.h>
00040 #include <OMX_Component.h>
00041 #include <OMX_Types.h>
00042 #include <OMX_Video.h>
00043
00044 #include <tsemaphore.h>
00045 #include <user_debug_levels.h>
00046
00047
00048 typedef struct appPrivateType{
00049 tsem_t* sourceEventSem;
00050 tsem_t* eofSem;
00051 tsem_t* volumeEventSem;
00052 tsem_t* alsasinkEventSem;
00053 OMX_HANDLETYPE audiosrchandle;
00054 OMX_HANDLETYPE volume_handle;
00055 OMX_HANDLETYPE alsasink_handle;
00056 }appPrivateType;
00057
00058 #define BUFFER_OUT_SIZE 8192
00059
00061 #define VERSIONMAJOR 1
00062 #define VERSIONMINOR 1
00063 #define VERSIONREVISION 0
00064 #define VERSIONSTEP 0
00065
00066
00067 OMX_ERRORTYPE audiosrcEventHandler(
00068 OMX_OUT OMX_HANDLETYPE hComponent,
00069 OMX_OUT OMX_PTR pAppData,
00070 OMX_OUT OMX_EVENTTYPE eEvent,
00071 OMX_OUT OMX_U32 Data1,
00072 OMX_OUT OMX_U32 Data2,
00073 OMX_OUT OMX_PTR pEventData);
00074
00075 OMX_ERRORTYPE audiosrcFillBufferDone(
00076 OMX_OUT OMX_HANDLETYPE hComponent,
00077 OMX_OUT OMX_PTR pAppData,
00078 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00079
00081 OMX_ERRORTYPE volumeEventHandler(
00082 OMX_OUT OMX_HANDLETYPE hComponent,
00083 OMX_OUT OMX_PTR pAppData,
00084 OMX_OUT OMX_EVENTTYPE eEvent,
00085 OMX_OUT OMX_U32 Data1,
00086 OMX_OUT OMX_U32 Data2,
00087 OMX_OUT OMX_PTR pEventData);
00088
00089 OMX_ERRORTYPE volumeEmptyBufferDone(
00090 OMX_OUT OMX_HANDLETYPE hComponent,
00091 OMX_OUT OMX_PTR pAppData,
00092 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00093
00094 OMX_ERRORTYPE volumeFillBufferDone(
00095 OMX_OUT OMX_HANDLETYPE hComponent,
00096 OMX_OUT OMX_PTR pAppData,
00097 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00098
00100 OMX_ERRORTYPE alsasinkEventHandler(
00101 OMX_OUT OMX_HANDLETYPE hComponent,
00102 OMX_OUT OMX_PTR pAppData,
00103 OMX_OUT OMX_EVENTTYPE eEvent,
00104 OMX_OUT OMX_U32 Data1,
00105 OMX_OUT OMX_U32 Data2,
00106 OMX_OUT OMX_PTR pEventData);
00107
00108 OMX_ERRORTYPE alsasinkEmptyBufferDone(
00109 OMX_OUT OMX_HANDLETYPE hComponent,
00110 OMX_OUT OMX_PTR pAppData,
00111 OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer);
00112
00116 void display_help();
00117
00121 int setPortParameters();
00122
00123