From 5c598be51d8ed0b3de392d432cf90b7e858aee31 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Mon, 17 Mar 2025 10:28:58 +0800 Subject: [PATCH] [fix] fix padding packets building --- src/qos/pacing_controller.cc | 3 +-- .../rtp_packetizer/rtp_packetizer_h264.cpp | 3 ++- src/transport/ice_transport_controller.cpp | 1 - src/transport/packet_sender.cpp | 26 +++++++++++-------- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/qos/pacing_controller.cc b/src/qos/pacing_controller.cc index 594ed49..4785b0e 100644 --- a/src/qos/pacing_controller.cc +++ b/src/qos/pacing_controller.cc @@ -412,7 +412,6 @@ void PacingController::ProcessPackets() { PacedPacketInfo pacing_info; DataSize recommended_probe_size = DataSize::Zero(); bool is_probing = prober_.is_probing(); - LOG_WARN("is probing"); if (is_probing) { // Probe timing is sensitive, and handled explicitly by BitrateProber, so // use actual send time rather than target. @@ -474,7 +473,7 @@ void PacingController::ProcessPackets() { transport_overhead_per_packet_; } - LOG_ERROR("Send packet_size {}", rtp_packet->Size()); + // LOG_ERROR("Send packet_size {}", rtp_packet->Size()); packet_sender_->SendPacket(std::move(rtp_packet), pacing_info); for (auto& packet : packet_sender_->FetchFec()) { EnqueuePacket(std::move(packet)); diff --git a/src/rtp/rtp_packetizer/rtp_packetizer_h264.cpp b/src/rtp/rtp_packetizer/rtp_packetizer_h264.cpp index eb47462..63f51d9 100644 --- a/src/rtp/rtp_packetizer/rtp_packetizer_h264.cpp +++ b/src/rtp/rtp_packetizer/rtp_packetizer_h264.cpp @@ -289,7 +289,8 @@ std::vector> RtpPacketizerH264::BuildPadding( // Add padding bytes uint32_t padding_size = current_payload_size; - rtp_packet_frame_.insert(rtp_packet_frame_.end(), padding_size - 1, 0); + rtp_packet_frame_.insert(rtp_packet_frame_.end(), padding_size, 0); + rtp_packet_frame_.push_back(padding_size); if (use_rtp_packet_to_send) { std::unique_ptr rtp_packet = diff --git a/src/transport/ice_transport_controller.cpp b/src/transport/ice_transport_controller.cpp index 2ea0190..c61ac50 100644 --- a/src/transport/ice_transport_controller.cpp +++ b/src/transport/ice_transport_controller.cpp @@ -183,7 +183,6 @@ int IceTransportController::SendVideo(const XVideoFrame* video_frame) { [this](std::shared_ptr encoded_frame) -> int { if (video_channel_send_) { video_channel_send_->SendVideo(encoded_frame); - LOG_WARN("SendVideo rtp packets"); } return 0; diff --git a/src/transport/packet_sender.cpp b/src/transport/packet_sender.cpp index 9c2b6e9..902fd7c 100644 --- a/src/transport/packet_sender.cpp +++ b/src/transport/packet_sender.cpp @@ -72,17 +72,21 @@ void PacketSender::SetPacingRates(webrtc::DataRate pacing_rate, void PacketSender::EnqueuePackets( std::vector> packets) { - task_queue_.PostTask([this, packets = std::move(packets)]() mutable { - for (auto &packet : packets) { - size_t packet_size = packet->payload_size() + packet->padding_size(); - if (include_overhead_) { - packet_size += packet->headers_size(); - } - packet_size_.Apply(1, packet_size); - pacing_controller_.EnqueuePacket(std::move(packet)); - } - MaybeProcessPackets(webrtc::Timestamp::MinusInfinity()); - }); + webrtc::PacedPacketInfo cluster_info; + for (auto &packet : packets) { + SendPacket(std::move(packet), cluster_info); + } + // task_queue_.PostTask([this, packets = std::move(packets)]() mutable { + // for (auto &packet : packets) { + // size_t packet_size = packet->payload_size() + packet->padding_size(); + // if (include_overhead_) { + // packet_size += packet->headers_size(); + // } + // packet_size_.Apply(1, packet_size); + // pacing_controller_.EnqueuePacket(std::move(packet)); + // } + // MaybeProcessPackets(webrtc::Timestamp::MinusInfinity()); + // }); } void PacketSender::RemovePacketsForSsrc(uint32_t ssrc) {