신입 교육 요청, 윈도우 개발

3401 단어
int __stdcall NetClient_VCASetConfig(
  int         _iLogonID,
  int         _iVCACmdID,
  void*       _iChannel,
  int         _lpCmdBuf,
  int         _iCmdBufLen
);
      ?            ?
          :

int CVideoWnd::ConnectRealPlay(DEV_INFO *pDev, int nChannel, bool bOsd)
{
    if(m_iPlayhandle != -1)
    {        
        //H264_DVR_DelRealDataCallBack(m_iPlayhandle, RealDataCallBack, (long)this);
        H264_DVR_DelRealDataCallBack_V2(m_iPlayhandle, RealDataCallBack_V2, (long)this);
        if(!H264_DVR_StopRealPlay(m_iPlayhandle))
        {
            TRACE("H264_DVR_StopRealPlay fail m_iPlayhandle = %d", m_iPlayhandle);
        }
    }

    if ( m_nPlaydecHandle == -1 )
    {
        //open decoder
        BYTE byFileHeadBuf;
        if (H264_PLAY_OpenStream(m_nIndex, &byFileHeadBuf, 1, SOURCE_BUF_MIN*50))
        {    
            //ÉèÖÃÐÅÏ¢Ö¡»Øµ÷
            H264_PLAY_SetInfoFrameCallBack(m_nIndex, videoInfoFramCallback,(DWORD)this);

            //µþ¼ÓosdÐÅÏ¢
            if ( bOsd )
            {
                OSD_INFO_TXT osd;
                osd.bkColor = RGB(0,255,0);
                osd.color = RGB(255,0,0);
                osd.pos_x = 10;
                osd.pos_y = 10;
                osd.isTransparent = 0;
                strcpy(osd.text, "test osd info"); 
                //H264_PLAY_SetOsdTex(m_nIndex, &osd);


                OSD_INFO_TXT osd2;
                osd2.bkColor = RGB(255,0,0);
                osd2.color = RGB(0,255,0);
                osd2.pos_x = 10;
                osd2.pos_y = 40;
                osd2.isTransparent = 0;
                osd2.isBold = 1;
                strcpy(osd2.text, "test222 osd info"); 
                //H264_PLAY_SetOsdTex(m_nIndex, &osd2);


                //ÉèÖÃosdµþ¼Ó»Øµ÷
                H264_PLAY_RigisterDrawFun(m_nIndex, drawOSDCall, (DWORD)this);
            }
            H264_PLAY_SetStreamOpenMode(m_nIndex, STREAME_REALTIME);    
            if ( H264_PLAY_Play(m_nIndex, this->m_hWnd) )
            {
                    H264_PLAY_SetDisplayCallBack(m_nIndex, pProc, (LONG)this);
                m_nPlaydecHandle = m_nIndex;
            }
        }    
    }
    H264_DVR_CLIENTINFO playstru;

    playstru.nChannel = nChannel;
    playstru.nStream = 1;
    playstru.nMode = 0;
    m_iPlayhandle = H264_DVR_RealPlay(pDev->lLoginID, &playstru);    
    if(m_iPlayhandle <= 0 )
    {
        DWORD dwErr = H264_DVR_GetLastError();
        CString sTemp("");
        sTemp.Format("access %s channel%d fail, dwErr = %d",pDev->szDevName,nChannel, dwErr);
        MessageBox(sTemp);
    }
    else
    {
        //set callback to decode receiving data
        //H264_DVR_SetRealDataCallBack(m_iPlayhandle, RealDataCallBack, (long)this);
        H264_DVR_MakeKeyFrame(pDev->lLoginID, nChannel, 0);
        H264_DVR_SetRealDataCallBack_V2(m_iPlayhandle, RealDataCallBack_V2, (long)this);
    }
    m_lLogin = pDev->lLoginID;
    m_iChannel = nChannel;
    TRACE("ConnectRealPlay: OK
"); //    NetClient_VCASetConfig(lLoginID,VCA_CMD_SET_CHANNEL|VCA_CMD_SET_RULE9_FACEREC|VCA_CMD_SET_RULE11_TRACK, nChannel,(DWORD)this);     return m_iPlayhandle; }

좋은 웹페이지 즐겨찾기