視頻監控問題1

來源:互聯網
上載者:User

多路訪問一定要考慮並發問題
若使用全域變數,此函數可能引起顯示混亂。PlayM4_GetPort以及相關函數的參數用一個數組取代全域變數

void CALLBACK g_RealDataCallBack_V30(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,DWORD dwUser){int m = -1;for (int i=0; i<mainDlg->m_staticNum; i++){if (lRealHandle == mainDlg->m_RealPlayHandles[i])//尋找播放控制代碼索引{m = i;break;;}}if (-1 == m){return;}switch (dwDataType){case NET_DVR_SYSHEAD: //系統頭if (!PlayM4_GetPort(&mainDlg->m_lPorts[m]))  //擷取播放庫未使用的通道號{break;}//m_iPort = lPort; //第一次回調的是系統頭,將擷取的播放庫port號賦值給全域port,下次回調資料時即使用此port號播放if (dwBufSize > 0){if (!PlayM4_SetStreamOpenMode(mainDlg->m_lPorts[m], STREAME_REALTIME))  //設定即時資料流播放模式{break;}if (!PlayM4_OpenStream(mainDlg->m_lPorts[m], pBuffer, dwBufSize, 1024*1024)) //開啟流介面{break;}HWND hWnd = mainDlg->m_staticList[m].m_hWnd;if (!PlayM4_Play(mainDlg->m_lPorts[m], hWnd)) //播放開始{break;}}case NET_DVR_STREAMDATA:   //碼流資料if (dwBufSize > 0 && mainDlg->m_lPorts[m] != -1){if (!PlayM4_InputData(mainDlg->m_lPorts[m], pBuffer, dwBufSize)){break;} }}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.