Ensure FakeNetwork propages arrival_time
Bug: webrtc:14833 Change-Id: I584524cca81e17ac91d581daab6030705ad68dac Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291104 Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Auto-Submit: Per Kjellander <perkj@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39148}
This commit is contained in:
parent
9f9671fe7f
commit
4abca6699d
@ -670,6 +670,7 @@ if (rtc_include_tests) {
|
||||
"../api:simulated_network_api",
|
||||
"../api/units:data_rate",
|
||||
"../api/units:time_delta",
|
||||
"../api/units:timestamp",
|
||||
"../modules/rtp_rtcp:rtp_rtcp_format",
|
||||
"../rtc_base:checks",
|
||||
"../system_wrappers",
|
||||
|
||||
@ -70,6 +70,9 @@ class NetworkPacket {
|
||||
bool is_rtcp() const { return is_rtcp_; }
|
||||
MediaType media_type() const { return media_type_; }
|
||||
absl::optional<int64_t> packet_time_us() const { return packet_time_us_; }
|
||||
RtpPacketReceived* packet_received() {
|
||||
return packet_received_ ? &packet_received_.value() : nullptr;
|
||||
}
|
||||
absl::optional<RtpPacketReceived> packet_received() const {
|
||||
return packet_received_;
|
||||
}
|
||||
|
||||
@ -13,6 +13,8 @@
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "api/units/time_delta.h"
|
||||
#include "api/units/timestamp.h"
|
||||
#include "call/simulated_network.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
|
||||
@ -441,6 +443,30 @@ TEST_F(FakeNetworkPipeTest, SetReceiver) {
|
||||
pipe->Process();
|
||||
}
|
||||
|
||||
TEST_F(FakeNetworkPipeTest, DeliverRtpPacketSetsCorrectArrivalTime) {
|
||||
BuiltInNetworkBehaviorConfig config;
|
||||
config.queue_delay_ms = 100;
|
||||
MockReceiver receiver;
|
||||
auto simulated_network = std::make_unique<SimulatedNetwork>(config);
|
||||
std::unique_ptr<FakeNetworkPipe> pipe(new FakeNetworkPipe(
|
||||
&fake_clock_, std::move(simulated_network), &receiver));
|
||||
|
||||
Timestamp send_time = fake_clock_.CurrentTime();
|
||||
RtpPacketReceived packet(nullptr, send_time);
|
||||
packet.SetExtension<TransportSequenceNumber>(123);
|
||||
pipe->DeliverRtpPacket(MediaType::VIDEO, std::move(packet),
|
||||
[](const RtpPacketReceived&) { return false; });
|
||||
|
||||
// Advance the network delay to get the first packet.
|
||||
fake_clock_.AdvanceTimeMilliseconds(config.queue_delay_ms);
|
||||
EXPECT_CALL(receiver, DeliverRtpPacket(MediaType::VIDEO, _, _))
|
||||
.WillOnce(WithArg<1>([&](RtpPacketReceived packet) {
|
||||
EXPECT_EQ(packet.arrival_time(),
|
||||
send_time + TimeDelta::Millis(config.queue_delay_ms));
|
||||
}));
|
||||
pipe->Process();
|
||||
}
|
||||
|
||||
TEST_F(FakeNetworkPipeTest, DeliverRtpPacketPropagatesExtensions) {
|
||||
BuiltInNetworkBehaviorConfig config;
|
||||
config.queue_delay_ms = 100;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user