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:
@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user