for rtc send can receive rtcp xr, player can calculate rtt , for metaRTC player send rtcp xr

This commit is contained in:
xiongguangjie
2022-07-12 19:26:17 +08:00
parent 14da5ab2d8
commit 602b475a3c
5 changed files with 315 additions and 1 deletions

View File

@@ -774,6 +774,23 @@ void WebRtcTransportImp::onRtcp(const char *buf, size_t len) {
}
break;
}
case RtcpType::RTCP_XR:{
RtcpXRRRTR* xr = (RtcpXRRRTR *) rtcp;
if(xr->bt != 4){
break;
}
auto it = _ssrc_to_track.find(xr->ssrc);
if (it == _ssrc_to_track.end()) {
WarnL << "未识别的 rtcp包:" << rtcp->dumpString();
return;
}
auto &track = it->second;
track->rtcp_context_send->onRtcp(rtcp);
auto xrdlrr = track->rtcp_context_send->createRtcpXRDLRR(track->answer_ssrc_rtp,track->answer_ssrc_rtp);
sendRtcpPacket(xrdlrr->data(), xrdlrr->size(), true);
break;
}
default: break;
}
}