[fix] set SendBurstInterval and QueueTimeLimit when packet sender created

This commit is contained in:
dijunkun
2025-03-18 17:38:07 +08:00
parent 2d59c74669
commit 257581e5e9
6 changed files with 13 additions and 22 deletions

View File

@@ -55,8 +55,7 @@ void RtpVideoSender::Enqueue(
for (auto& rtp_packet : rtp_packets) {
std::unique_ptr<webrtc::RtpPacketToSend> rtp_packet_to_send(
static_cast<webrtc::RtpPacketToSend*>(rtp_packet.release()));
rtp_packet_to_send->set_capture_time(
webrtc::Timestamp::Millis(capture_timestamp_ms));
rtp_packet_to_send->set_capture_time(clock_->CurrentTime());
rtp_packet_to_send->set_transport_sequence_number(transport_seq_++);
rtp_packet_to_send->set_packet_type(webrtc::RtpPacketMediaType::kVideo);
// rtp_packet_queue_.push(std::move(rtp_packet_to_send));

View File

@@ -56,6 +56,8 @@ void IceTransportController::Create(
packet_sender_ = std::make_shared<PacketSenderImp>(ice_agent, webrtc_clock_);
packet_sender_->SetPacingRates(DataRate::BitsPerSec(300000),
DataRate::Zero());
packet_sender_->SetSendBurstInterval(TimeDelta::Millis(40));
packet_sender_->SetQueueTimeLimit(TimeDelta::Millis(2000));
packet_sender_->SetOnSentPacketFunc(
[this](const webrtc::RtpPacketToSend& packet) {
if (ice_agent_) {

View File

@@ -16,7 +16,8 @@ PacketSenderImp::PacketSenderImp(std::shared_ptr<IceAgent> ice_agent,
is_started_(false),
is_shutdown_(false),
packet_size_(/*alpha=*/0.95),
include_overhead_(false) {}
include_overhead_(false),
last_send_time_(webrtc::Timestamp::Millis(0)) {}
PacketSenderImp::~PacketSenderImp() {}
@@ -89,11 +90,6 @@ void PacketSenderImp::EnqueuePackets(
}
MaybeProcessPackets(webrtc::Timestamp::MinusInfinity());
});
// webrtc::PacedPacketInfo cluster_info;
// for (auto &packet : packets) {
// SendPacket(std::move(packet), cluster_info);
// }
}
void PacketSenderImp::RemovePacketsForSsrc(uint32_t ssrc) {
@@ -157,9 +153,7 @@ void PacketSenderImp::OnStatsUpdated(const Stats &stats) {
}
void PacketSenderImp::MaybeScheduleProcessPackets() {
LOG_ERROR("x1");
if (!processing_packets_) {
LOG_ERROR("x2");
MaybeProcessPackets(webrtc::Timestamp::MinusInfinity());
}
}

View File

@@ -61,6 +61,12 @@ class PacketSenderImp : public PacketSender,
packet->UpdateSequenceNumber(ssrc_seq_[packet->Ssrc()]++);
webrtc::Timestamp now = clock_->CurrentTime();
webrtc::TimeDelta interval = now - last_send_time_;
webrtc::TimeDelta delay = now - packet->capture_time();
LOG_WARN("interval: {}, delay: {}", interval.ms(), delay.seconds());
last_send_time_ = now;
on_sent_packet_func_(*packet);
}
}
@@ -216,6 +222,8 @@ class PacketSenderImp : public PacketSender,
TaskQueue task_queue_;
int64_t transport_seq_ = 0;
std::map<int32_t, int16_t> ssrc_seq_;
webrtc::Timestamp last_send_time_;
};
#endif