[feat] support FIR

This commit is contained in:
dijunkun
2025-03-07 18:36:55 +08:00
parent 19fc8cda89
commit de0386f08a
21 changed files with 247 additions and 32 deletions

View File

@@ -241,6 +241,9 @@ bool IceTransport::ParseRtcpPacket(const uint8_t *buffer, size_t size,
case webrtc::rtcp::Nack::kFeedbackMessageType:
valid = HandleNack(rtcp_block, rtcp_packet_info);
break;
case webrtc::rtcp::Fir::kFeedbackMessageType:
valid = HandleFir(rtcp_block, rtcp_packet_info);
break;
default:
break;
}
@@ -408,6 +411,21 @@ bool IceTransport::HandleNack(const RtcpCommonHeader &rtcp_block,
return true;
}
bool IceTransport::HandleFir(const RtcpCommonHeader &rtcp_block,
RtcpPacketInfo *rtcp_packet_info) {
webrtc::rtcp::Fir fir;
if (!fir.Parse(rtcp_block)) {
return false;
}
if (ice_transport_controller_) {
ice_transport_controller_->FullIntraRequest();
return true;
}
return false;
}
int IceTransport::DestroyIceTransmission() {
LOG_INFO("[{}->{}] Destroy ice transmission", user_id_, remote_user_id_);
is_closed_ = true;