void TimerMgr::init(OnTimer timercbfunc)
{
	m_bStop = false;
	if (NULL == m_threadHandle)
	{
		(void)VOS_CreateThread(TimerMgr::threadproc,this,&m_threadHandle,0);
		m_mutex = VOS_CreateMutex();
	}
	m_TimerCBFunc = timercbfunc;
}
/*******************************************************************************
  Function:       CNVSTimer::run()
  Description:    启动定时检测线程
  Calls:            
  Called By:      
  Input:          无 
  Output:         无 
  Return:         
  VOS_SUCCESS: init success
  VOS_FAIL: init fail 
*******************************************************************************/
long CNVSTimer::run()
{
    errno = 0;
    if (VOS_OK != VOS_CreateThread((VOS_THREAD_FUNC)invoke, (void *)this, 
                                    &m_pVosThread, VOS_DEFAULT_STACK_SIZE))
    {
        IVS_RUN_LOG_ERR("Create timer thread failed. error(%d):%s", errno, strerror(errno));
        return VOS_FAIL;
    };
    IVS_DBG_LOG("FILE(%s)LINE(%d): VOS_CreateThread: create timer thread(%d) OK.", 
        _TIMER_FL_, m_pVosThread->pthead);

    return VOS_SUCCESS;
};
IVS_INT32 CSDKDecoderMgr::InitSDK(PCUMW_CALLBACK_NOTIFY pFunNotifyCallBack, void* pUserData)
{
	if(m_bInit)
	{
		return IVS_TVWALL_INIT_ALREADY;
	}
	IVS_INT32 iRet = IVS_SUCCEED;
	CHECK_POINTER(pFunNotifyCallBack, IVS_TVWALL_MEMORY_NULL);
	CHECK_POINTER(pUserData, IVS_TVWALL_MEMORY_NULL);

	//////////////////////////////////////////////////////////////////////////
	//2013-1-28 高书明 先屏蔽HWPuSDK相关函数,与BP的dll冲突
	//初始化解码器SDK
	//char ip[10] = {0};
	//BOOL bInitSDK = IVS_PU_Init(LINK_MODE_MANUAL, ip, 5060);
	////设置回调函数
	//bInitSDK = IVS_PU_EventStatesCallBack((pfGetEventInfoCallBack)SDKEventCallBack) | bInitSDK;
	//if(!bInitSDK)
	//{
	//	iRet = IVS_FAIL;
	//}
	//////////////////////////////////////////////////////////////////////////
	//开启线程
	errno = 0;
	if (VOS_OK != VOS_CreateThread((VOS_THREAD_FUNC)invoke, (void *)this, 
		&m_pVosThread, VOS_DEFAULT_STACK_SIZE))
	{
		BP_RUN_LOG_ERR(IVS_FAIL, "Create SDK Decoder Mgr thread ", "failed. error(%d):%s", errno, strerror(errno));
		return IVS_FAIL;
	}
	m_pCallBackFun = pFunNotifyCallBack;
	m_pUserData = pUserData;
	m_bThreadExit = FALSE;
	m_bInit = TRUE;
	return iRet;
}//lint !e818