mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
[fix] set SendBurstInterval and QueueTimeLimit when packet sender created
This commit is contained in:
@@ -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));
|
||||
|
||||
@@ -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_) {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user