OpenMAXBellagio 0.9.3
omx_video_scheduler_component.h
Go to the documentation of this file.
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