EasyDarwin Rtsp流转发(二)

出差一周~

接第一篇:

 在  QTSSCallbacks::QTSS_ReflectRTPTrackData 中:

 

for (; fCurrentModule < numModules; fCurrentModule++)
 {
  QTSSModule* theModule = QTSServerInterface::GetModule(QTSSModule::kRTSPRelayingDataRole, fCurrentModule);
  (void)theModule->CallDispatch(QTSS_RTSPRelayingData_Role, &packetParams);
 }

GetMoudle从 sModuleArray中获取QTSSModule对象。
调用CallDispatch 进行数据的分发,具体的数据 packetParams。

(fDispatchFunc)(inRole, inParams) ==QTSSOnDemandRelayModuleDispatch

这个函数主要是一个swicth 语句,根据上面传下来的 QTSS_RTSPRelayingData_Role 调用了 ProcessRelayRTPData 进行具体的流对象处理

RTSPRelaySession* relaySes = (RTSPRelaySession*)inParams->inRTSPSession;

取出 theSession ,theSession中至少包含一组流。

theStream = theSession->GetStreamByIndex(inIndex);

循环取出每一组流,分别调用PushPacket

在pushpacket 中,计算时间并且调用 Bool16 ReflectorSocket::ProcessPacket 送入  theSender->fPacketQueue.EnQueue(&thePacket->fQueueElem);队列中。至此这个线程完成所以工作。

fSockets->GetSocketA()   RTP

fSockets->GetSocketB()   RTCP

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值