|
OpenMAXBellagio 0.9.3
|
00001 00026 #ifndef _OMX_VIDEO_SCHEDULER_H_ 00027 #define _OMX_VIDEO_SCHEDULER_H_ 00028 00029 #include <OMX_Types.h> 00030 #include <OMX_Component.h> 00031 #include <OMX_Core.h> 00032 #include <omx_base_filter.h> 00033 #include <omx_base_video_port.h> 00034 #include <omx_base_clock_port.h> 00035 00036 #define VIDEO_SCHEDULER_COMP_NAME "OMX.st.video.scheduler" 00037 #define VIDEO_SCHEDULER_COMP_ROLE "video.scheduler" 00038 #define MAX_VIDEOSCHED_COMPONENTS 10 00039 00040 #define VIDEOSCHED_QUALITY_LEVELS 2 00041 static int videoSchedQualityLevels []={1, 456192, 1, 304128}; 00042 00049 DERIVEDCLASS(omx_video_scheduler_component_PrivateType, omx_base_filter_PrivateType) 00050 #define omx_video_scheduler_component_PrivateType_FIELDS omx_base_filter_PrivateType_FIELDS \ 00051 OMX_S32 xScale; \ 00052 OMX_TIME_CLOCKSTATE eState; \ 00053 OMX_BOOL frameDropFlag;\ 00054 int dropFrameCount; 00055 ENDCLASS(omx_video_scheduler_component_PrivateType) 00056 00057 /* Component private entry points declaration */ 00058 OMX_ERRORTYPE omx_video_scheduler_component_Constructor(OMX_COMPONENTTYPE *openmaxStandComp, OMX_STRING cComponentName); 00059 OMX_ERRORTYPE omx_fbdev_sink_component_Init(OMX_COMPONENTTYPE *openmaxStandComp); 00060 OMX_ERRORTYPE omx_fbdev_sink_component_Deinit(OMX_COMPONENTTYPE *openmaxStandComp); 00061 00062 OMX_ERRORTYPE omx_video_scheduler_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp); 00063 00064 void omx_video_scheduler_component_BufferMgmtCallback( 00065 OMX_COMPONENTTYPE *openmaxStandComp, 00066 OMX_BUFFERHEADERTYPE* inputbuffer, 00067 OMX_BUFFERHEADERTYPE* outputbuffer); 00068 00069 OMX_ERRORTYPE omx_video_scheduler_component_GetParameter( 00070 OMX_HANDLETYPE hComponent, 00071 OMX_INDEXTYPE nParamIndex, 00072 OMX_PTR ComponentParameterStructure); 00073 00074 OMX_ERRORTYPE omx_video_scheduler_component_SetParameter( 00075 OMX_HANDLETYPE hComponent, 00076 OMX_INDEXTYPE nParamIndex, 00077 OMX_PTR ComponentParameterStructure); 00078 00079 /* to handle the communication at the clock port */ 00080 OMX_BOOL omx_video_scheduler_component_ClockPortHandleFunction( 00081 omx_video_scheduler_component_PrivateType* omx_video_scheduler_component_Private, 00082 OMX_BUFFERHEADERTYPE* inputbuffer); 00083 00084 OMX_ERRORTYPE omx_video_scheduler_component_port_SendBufferFunction( 00085 omx_base_PortType *openmaxStandPort, 00086 OMX_BUFFERHEADERTYPE* pBuffer); 00087 00088 OMX_ERRORTYPE omx_video_scheduler_component_port_FlushProcessingBuffers(omx_base_PortType *openmaxStandPort); 00089 #endif