mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00
Ensure that sequence numbers are initialized in DelayBasedBwe unittests
Bug: b/299667054 Change-Id: I6bcc4ec9e3588842e6da7d9265c145680de0c52b Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/332260 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Björn Terelius <terelius@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41431}
This commit is contained in:
parent
771b524606
commit
51563cc36c
2 changed files with 14 additions and 9 deletions
|
@ -26,6 +26,7 @@
|
|||
#include "modules/congestion_controller/goog_cc/probe_bitrate_estimator.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "test/field_trial.h"
|
||||
#include "test/gtest.h"
|
||||
|
||||
namespace webrtc {
|
||||
constexpr size_t kMtu = 1200;
|
||||
|
@ -52,6 +53,7 @@ RtpStream::RtpStream(int fps, int bitrate_bps)
|
|||
// previous frame, no frame will be generated. The frame is split into
|
||||
// packets.
|
||||
int64_t RtpStream::GenerateFrame(int64_t time_now_us,
|
||||
int64_t* next_sequence_number,
|
||||
std::vector<PacketResult>* packets) {
|
||||
if (time_now_us < next_rtp_time_) {
|
||||
return next_rtp_time_;
|
||||
|
@ -66,6 +68,7 @@ int64_t RtpStream::GenerateFrame(int64_t time_now_us,
|
|||
packet.sent_packet.send_time =
|
||||
Timestamp::Micros(time_now_us + kSendSideOffsetUs);
|
||||
packet.sent_packet.size = DataSize::Bytes(payload_size);
|
||||
packet.sent_packet.sequence_number = (*next_sequence_number)++;
|
||||
packets->push_back(packet);
|
||||
}
|
||||
next_rtp_time_ = time_now_us + (1000000 + fps_ / 2) / fps_;
|
||||
|
@ -131,14 +134,15 @@ void StreamGenerator::SetBitrateBps(int bitrate_bps) {
|
|||
|
||||
// TODO(holmer): Break out the channel simulation part from this class to make
|
||||
// it possible to simulate different types of channels.
|
||||
int64_t StreamGenerator::GenerateFrame(std::vector<PacketResult>* packets,
|
||||
int64_t time_now_us) {
|
||||
int64_t StreamGenerator::GenerateFrame(int64_t time_now_us,
|
||||
int64_t* next_sequence_number,
|
||||
std::vector<PacketResult>* packets) {
|
||||
RTC_CHECK(packets != NULL);
|
||||
RTC_CHECK(packets->empty());
|
||||
RTC_CHECK_GT(capacity_, 0);
|
||||
auto it =
|
||||
std::min_element(streams_.begin(), streams_.end(), RtpStream::Compare);
|
||||
(*it)->GenerateFrame(time_now_us, packets);
|
||||
(*it)->GenerateFrame(time_now_us, next_sequence_number, packets);
|
||||
for (PacketResult& packet : *packets) {
|
||||
int capacity_bpus = capacity_ / 1000;
|
||||
int64_t required_network_time_us =
|
||||
|
@ -233,8 +237,8 @@ bool DelayBasedBweTest::GenerateAndProcessFrame(uint32_t ssrc,
|
|||
stream_generator_->SetBitrateBps(bitrate_bps);
|
||||
std::vector<PacketResult> packets;
|
||||
|
||||
int64_t next_time_us =
|
||||
stream_generator_->GenerateFrame(&packets, clock_.TimeInMicroseconds());
|
||||
int64_t next_time_us = stream_generator_->GenerateFrame(
|
||||
clock_.TimeInMicroseconds(), &next_sequence_number_, &packets);
|
||||
if (packets.empty())
|
||||
return false;
|
||||
|
||||
|
|
|
@ -15,12 +15,11 @@
|
|||
#include <stdint.h>
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "api/transport/field_trial_based_config.h"
|
||||
#include "api/transport/network_types.h"
|
||||
#include "api/units/timestamp.h"
|
||||
#include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
|
||||
#include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
|
||||
#include "system_wrappers/include/clock.h"
|
||||
|
@ -61,6 +60,7 @@ class RtpStream {
|
|||
// previous frame, no frame will be generated. The frame is split into
|
||||
// packets.
|
||||
int64_t GenerateFrame(int64_t time_now_us,
|
||||
int64_t* next_sequence_number,
|
||||
std::vector<PacketResult>* packets);
|
||||
|
||||
// The send-side time when the next frame can be generated.
|
||||
|
@ -102,8 +102,9 @@ class StreamGenerator {
|
|||
|
||||
// TODO(holmer): Break out the channel simulation part from this class to make
|
||||
// it possible to simulate different types of channels.
|
||||
int64_t GenerateFrame(std::vector<PacketResult>* packets,
|
||||
int64_t time_now_us);
|
||||
int64_t GenerateFrame(int64_t time_now_us,
|
||||
int64_t* next_sequence_number,
|
||||
std::vector<PacketResult>* packets);
|
||||
|
||||
private:
|
||||
// Capacity of the simulated channel in bits per second.
|
||||
|
|
Loading…
Reference in a new issue