Chromium Code Reviews| Index: webrtc/video/rtp_stream_receiver.cc |
| diff --git a/webrtc/video/rtp_stream_receiver.cc b/webrtc/video/rtp_stream_receiver.cc |
| index d49d0959f32fc826dd3da0cb26d7dda3fe1e0079..7c2f15dde0baaff490f1174ea6365e812180ecd7 100644 |
| --- a/webrtc/video/rtp_stream_receiver.cc |
| +++ b/webrtc/video/rtp_stream_receiver.cc |
| @@ -26,6 +26,8 @@ |
| #include "webrtc/modules/rtp_rtcp/include/rtp_receiver.h" |
| #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" |
| #include "webrtc/modules/rtp_rtcp/include/ulpfec_receiver.h" |
| +#include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" |
| +#include "webrtc/modules/rtp_rtcp/source/rtp_packet_received.h" |
| #include "webrtc/modules/video_coding/frame_object.h" |
| #include "webrtc/modules/video_coding/h264_sprop_parameter_sets.h" |
| #include "webrtc/modules/video_coding/h264_sps_pps_tracker.h" |
| @@ -316,9 +318,7 @@ void RtpStreamReceiver::OnIncomingSSRCChanged(const uint32_t ssrc) { |
| rtp_rtcp_->SetRemoteSSRC(ssrc); |
| } |
| -bool RtpStreamReceiver::DeliverRtp(const uint8_t* rtp_packet, |
| - size_t rtp_packet_length, |
| - const PacketTime& packet_time) { |
| +bool RtpStreamReceiver::OnRtpPacket(const RtpPacketReceived& packet) { |
| { |
| rtc::CritScope lock(&receive_cs_); |
| if (!receiving_) { |
| @@ -326,46 +326,48 @@ bool RtpStreamReceiver::DeliverRtp(const uint8_t* rtp_packet, |
| } |
| } |
| - RTPHeader header; |
| - if (!rtp_header_parser_->Parse(rtp_packet, rtp_packet_length, |
| - &header)) { |
| - return false; |
| - } |
| - int64_t arrival_time_ms; |
| int64_t now_ms = clock_->TimeInMilliseconds(); |
| - if (packet_time.timestamp != -1) |
| - arrival_time_ms = (packet_time.timestamp + 500) / 1000; |
| - else |
| - arrival_time_ms = now_ms; |
| { |
| // Periodically log the RTP header of incoming packets. |
| rtc::CritScope lock(&receive_cs_); |
| if (now_ms - last_packet_log_ms_ > kPacketLogIntervalMs) { |
| std::stringstream ss; |
| - ss << "Packet received on SSRC: " << header.ssrc << " with payload type: " |
| - << static_cast<int>(header.payloadType) << ", timestamp: " |
| - << header.timestamp << ", sequence number: " << header.sequenceNumber |
| - << ", arrival time: " << arrival_time_ms; |
| - if (header.extension.hasTransmissionTimeOffset) |
| - ss << ", toffset: " << header.extension.transmissionTimeOffset; |
| - if (header.extension.hasAbsoluteSendTime) |
| - ss << ", abs send time: " << header.extension.absoluteSendTime; |
| + ss << "Packet received on SSRC: " << packet.Ssrc() |
| + << " with payload type: " << static_cast<int>(packet.PayloadType()) |
| + << ", timestamp: " << packet.Timestamp() |
| + << ", sequence number: " << packet.SequenceNumber() |
| + << ", arrival time: " << packet.arrival_time_ms(); |
| + if (packet.HasExtension<TransmissionOffset>()) { |
| + int32_t time_offset; |
| + packet.GetExtension<TransmissionOffset>(&time_offset); |
|
brandtr
2017/02/10 11:43:00
I believe you could simplify this:
int32_t time_o
nisse-webrtc
2017/02/10 11:56:27
Done.
|
| + ss << ", toffset: " << time_offset; |
| + } |
| + if (packet.HasExtension<AbsoluteSendTime>()) { |
| + uint32_t send_time; |
|
brandtr
2017/02/10 11:43:00
same here.
nisse-webrtc
2017/02/10 11:56:27
Done.
|
| + packet.GetExtension<AbsoluteSendTime>(&send_time); |
| + ss << ", abs send time: " << send_time; |
| + } |
| LOG(LS_INFO) << ss.str(); |
| last_packet_log_ms_ = now_ms; |
| } |
| } |
| + // TODO(nisse): Delete use of GetHeader, but needs refactoring of |
| + // ReceivePacket and IncomingPacket methods below. |
| + RTPHeader header; |
| + packet.GetHeader(&header); |
| + |
| header.payload_type_frequency = kVideoPayloadTypeFrequency; |
| bool in_order = IsPacketInOrder(header); |
| rtp_payload_registry_.SetIncomingPayloadType(header); |
| - bool ret = ReceivePacket(rtp_packet, rtp_packet_length, header, in_order); |
| + bool ret = ReceivePacket(packet.data(), packet.size(), header, in_order); |
| // Update receive statistics after ReceivePacket. |
| // Receive statistics will be reset if the payload type changes (make sure |
| // that the first packet is included in the stats). |
| rtp_receive_statistics_->IncomingPacket( |
| - header, rtp_packet_length, IsPacketRetransmitted(header, in_order)); |
| + header, packet.size(), IsPacketRetransmitted(header, in_order)); |
| return ret; |
| } |