mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
[feat] implementation for nack generator module
This commit is contained in:
@@ -232,15 +232,19 @@ bool IceTransport::ParseRtcpPacket(const uint8_t *buffer, size_t size,
|
||||
LOG_INFO("Receiver report");
|
||||
// valid = HandleReceiverReport(rtcp_block, rtcp_packet_info);
|
||||
break;
|
||||
case RtcpPacket::PAYLOAD_TYPE::TCC:
|
||||
case RtpFeedback::kPacketType:
|
||||
switch (rtcp_block.fmt()) {
|
||||
case webrtc::rtcp::CongestionControlFeedback::kFeedbackMessageType:
|
||||
valid = HandleCongestionControlFeedback(rtcp_block, rtcp_packet_info);
|
||||
break;
|
||||
case webrtc::rtcp::Nack::kFeedbackMessageType:
|
||||
valid = HandleNack(rtcp_block, rtcp_packet_info);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
// case rtcp::Psfb::kPacketType:
|
||||
// switch (rtcp_block.fmt()) {
|
||||
// case rtcp::Pli::kFeedbackMessageType:
|
||||
@@ -314,6 +318,24 @@ bool IceTransport::HandleCongestionControlFeedback(
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IceTransport::HandleNack(const webrtc::rtcp::CommonHeader &rtcp_block,
|
||||
RtcpPacketInfo *rtcp_packet_info) {
|
||||
webrtc::rtcp::Nack nack;
|
||||
if (!nack.Parse(rtcp_block)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// uint32_t first_media_source_ssrc = nack.ssrc();
|
||||
// if (first_media_source_ssrc == local_media_ssrc() ||
|
||||
// registered_ssrcs_.contains(first_media_source_ssrc)) {
|
||||
// rtcp_packet_info->nack.emplace(std::move(nack));
|
||||
// }
|
||||
|
||||
LOG_INFO("Nack [{}]", nack.packet_ids().size());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int IceTransport::DestroyIceTransmission() {
|
||||
LOG_INFO("[{}->{}] Destroy ice transmission", user_id_, remote_user_id_);
|
||||
is_closed_ = true;
|
||||
|
||||
@@ -132,6 +132,9 @@ class IceTransport {
|
||||
const webrtc::rtcp::CommonHeader &rtcp_block,
|
||||
RtcpPacketInfo *rtcp_packet_info);
|
||||
|
||||
bool HandleNack(const webrtc::rtcp::CommonHeader &rtcp_block,
|
||||
RtcpPacketInfo *rtcp_packet_info);
|
||||
|
||||
private:
|
||||
bool hardware_acceleration_ = false;
|
||||
bool use_trickle_ice_ = true;
|
||||
|
||||
@@ -374,7 +374,7 @@ void IceTransportController::PostUpdates(webrtc::NetworkControlUpdate update) {
|
||||
target_bitrate_ = update.target_rate.has_value()
|
||||
? update.target_rate->target_rate.bps()
|
||||
: 0;
|
||||
// LOG_WARN("Target bitrate [{}]bps", target_bitrate_);
|
||||
LOG_WARN("Target bitrate [{}]bps", target_bitrate_);
|
||||
video_encoder_->SetTargetBitrate(target_bitrate_);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user