Change ReceiveStatistics to implement RtpPacketSinkInterface, part 1

Add new method OnRtpPacket, but leave
ReceiveStatisticsImpl::IncomingPacket and most of the implementation
unchanged. Deleting the old method and converting implementation from
RTPHeader to RtpPacketreceived is planned for a followup, after
downstream code is updated.

Bug: webrtc:7135, webrtc:8016
Change-Id: I697ec12804618859f8d69415622d1b957e1d0847
Reviewed-on: https://webrtc-review.googlesource.com/100104
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24889}
This commit is contained in:
Niels Möller
2018-09-14 08:26:32 +02:00
committed by Commit Bot
parent 2fbb83b16b
commit 1f3206cca4
17 changed files with 214 additions and 176 deletions

View File

@ -14,6 +14,7 @@
#include <memory>
#include <string>
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
#include "rtc_base/checks.h"
#include "rtc_base/rate_limiter.h"
#include "test/null_transport.h"
@ -43,22 +44,23 @@ bool LoopBackTransport::SendRtp(const uint8_t* data,
return true;
}
}
RTPHeader header;
std::unique_ptr<RtpHeaderParser> parser(RtpHeaderParser::Create());
if (!parser->Parse(data, len, &header)) {
RtpPacketReceived parsed_packet;
if (!parsed_packet.Parse(data, len)) {
return false;
}
const auto pl =
rtp_payload_registry_->PayloadTypeToPayload(header.payloadType);
rtp_payload_registry_->PayloadTypeToPayload(parsed_packet.PayloadType());
if (!pl) {
return false;
}
const uint8_t* payload = data + header.headerLength;
RTC_CHECK_GE(len, header.headerLength);
const size_t payload_length = len - header.headerLength;
receive_statistics_->IncomingPacket(header, len);
return rtp_receiver_->IncomingRtpPacket(header, payload, payload_length,
pl->typeSpecific);
receive_statistics_->OnRtpPacket(parsed_packet);
RTPHeader header;
parsed_packet.GetHeader(&header);
return rtp_receiver_->IncomingRtpPacket(
header, parsed_packet.payload().data(),
// RtpReceiver expects length including padding.
parsed_packet.payload_size() + parsed_packet.padding_size(),
pl->typeSpecific);
}
bool LoopBackTransport::SendRtcp(const uint8_t* data, size_t len) {