记录一下问题
从摄像头接收到的数据走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数据,但是实际上视频平台并没有这一过程。这里有问题,记录一下。