mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-23 01:12:20 +08:00
初步实现twcc rtcp发送
This commit is contained in:
@@ -332,6 +332,10 @@ void WebRtcTransportImp::onCreate(){
|
||||
}
|
||||
return true;
|
||||
}, getPoller());
|
||||
|
||||
_twcc_ctx.setOnSendTwccCB([this](uint32_t ssrc, string fci) {
|
||||
onSendTwcc(ssrc, fci);
|
||||
});
|
||||
}
|
||||
|
||||
WebRtcTransportImp::WebRtcTransportImp(const EventPoller::Ptr &poller) : WebRtcTransport(poller) {
|
||||
@@ -810,7 +814,7 @@ void WebRtcTransportImp::onRtp(const char *buf, size_t len) {
|
||||
string rid;
|
||||
auto twcc_ext = track->rtp_ext_ctx->changeRtpExtId(rtp, true, &rid, RtpExtType::transport_cc);
|
||||
if (twcc_ext && !is_rtx) {
|
||||
_twcc_ctx.onRtp(twcc_ext.getTransportCCSeq());
|
||||
_twcc_ctx.onRtp(ssrc, twcc_ext.getTransportCCSeq());
|
||||
}
|
||||
|
||||
auto &ref = track->rtp_channel[rid];
|
||||
@@ -865,6 +869,13 @@ void WebRtcTransportImp::onSendNack(MediaTrack &track, const FCI_NACK &nack, uin
|
||||
sendRtcpPacket((char *) rtcp.get(), rtcp->getSize(), true);
|
||||
}
|
||||
|
||||
void WebRtcTransportImp::onSendTwcc(uint32_t ssrc, const string &twcc_fci) {
|
||||
auto rtcp = RtcpFB::create(RTPFBType::RTCP_RTPFB_TWCC, twcc_fci.data(), twcc_fci.size());
|
||||
rtcp->ssrc = htons(0);
|
||||
rtcp->ssrc_media = htonl(ssrc);
|
||||
sendRtcpPacket((char *) rtcp.get(), rtcp->getSize(), true);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
void WebRtcTransportImp::onSortedRtp(MediaTrack &track, const string &rid, RtpPacket::Ptr rtp) {
|
||||
|
||||
Reference in New Issue
Block a user