incomingDataHandler、incomingReportHandler和networkReadHandler的區別

記錄一下問題
從攝像頭接收到的數據走networkReadHandler,
而從視頻平臺接收到的數據走incomingDataHandler。

incomingDataHandler是RTSPClient類的一個函數,是一個會話回調;該socket是在RTSPClient的openConnection函數中通過調用setupStreamSocket方法創建,用於連接554端口。

networkReadHandler是MultiFramedRTPSource類的一個函數,是一個專門處理RTP碼流的一個回調函數,是在創建好sink之後Assign的,在Sink的startPlaying函數內部Assign。用的是RTPInterface類中GroupSock的socket,該socket在RTPInterface構造函數中創建,也即subsession初始化時,創建H264VideoRTPSource(MultiFramedRTPSource子類)時。

這兩個函數之間還有一個Handler是incomingReportHandler,是RTCPInstance類的一個函數,聽名字應該是用於處理RTCP的相關數據。是subsession創建的時候Assign的,有一個Track就有一個對應的incomingReportHandler。

按理說,一開始RTSP客戶端與554端口建立一個會話,後續會協商一個新端口用於接收RTP數據,但是實際上視頻平臺並沒有這一過程。這裏有問題,記錄一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章