Propagate RtpPacketReceived::arival_time_ms() when demuxing RTX packets
Bug: webrtc:11163 Change-Id: I3bf4a662c84e9b31e0b0fc15660d360413a4aee1 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161224 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/master@{#29996}
This commit is contained in:
parent
934afc6ba1
commit
e19a375f8c
@ -64,6 +64,7 @@ void RtxReceiveStream::OnRtpPacket(const RtpPacketReceived& rtx_packet) {
|
|||||||
media_packet.SetSequenceNumber((payload[0] << 8) + payload[1]);
|
media_packet.SetSequenceNumber((payload[0] << 8) + payload[1]);
|
||||||
media_packet.SetPayloadType(it->second);
|
media_packet.SetPayloadType(it->second);
|
||||||
media_packet.set_recovered(true);
|
media_packet.set_recovered(true);
|
||||||
|
media_packet.set_arrival_time_ms(rtx_packet.arrival_time_ms());
|
||||||
|
|
||||||
// Skip the RTX header.
|
// Skip the RTX header.
|
||||||
rtc::ArrayView<const uint8_t> rtx_payload = payload.subview(kRtxHeaderSize);
|
rtc::ArrayView<const uint8_t> rtx_payload = payload.subview(kRtxHeaderSize);
|
||||||
|
|||||||
@ -22,6 +22,7 @@ namespace webrtc {
|
|||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
using ::testing::_;
|
using ::testing::_;
|
||||||
|
using ::testing::Property;
|
||||||
using ::testing::StrictMock;
|
using ::testing::StrictMock;
|
||||||
|
|
||||||
constexpr int kMediaPayloadType = 100;
|
constexpr int kMediaPayloadType = 100;
|
||||||
@ -188,6 +189,17 @@ TEST(RtxReceiveStreamTest, CopiesRtpHeaderExtensions) {
|
|||||||
rtx_sink.OnRtpPacket(rtx_packet);
|
rtx_sink.OnRtpPacket(rtx_packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(RtxReceiveStreamTest, PropagatesArrivalTime) {
|
||||||
|
StrictMock<MockRtpPacketSink> media_sink;
|
||||||
|
RtxReceiveStream rtx_sink(&media_sink, PayloadTypeMapping(), kMediaSSRC);
|
||||||
|
RtpPacketReceived rtx_packet(nullptr);
|
||||||
|
EXPECT_TRUE(rtx_packet.Parse(rtc::ArrayView<const uint8_t>(kRtxPacket)));
|
||||||
|
rtx_packet.set_arrival_time_ms(123);
|
||||||
|
EXPECT_CALL(media_sink,
|
||||||
|
OnRtpPacket(Property(&RtpPacketReceived::arrival_time_ms, 123)));
|
||||||
|
rtx_sink.OnRtpPacket(rtx_packet);
|
||||||
|
}
|
||||||
|
|
||||||
TEST(RtxReceiveStreamTest, SupportsLargePacket) {
|
TEST(RtxReceiveStreamTest, SupportsLargePacket) {
|
||||||
StrictMock<MockRtpPacketSink> media_sink;
|
StrictMock<MockRtpPacketSink> media_sink;
|
||||||
RtxReceiveStream rtx_sink(&media_sink, PayloadTypeMapping(), kMediaSSRC);
|
RtxReceiveStream rtx_sink(&media_sink, PayloadTypeMapping(), kMediaSSRC);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user