Chromium Code Reviews| Index: webrtc/modules/rtp_rtcp/source/fec_test_helper.cc |
| diff --git a/webrtc/modules/rtp_rtcp/source/fec_test_helper.cc b/webrtc/modules/rtp_rtcp/source/fec_test_helper.cc |
| index 69a87a8bf2b57f8b9be17c35806b43038ee1df19..d8af53a396bbafcb95a4e703d2968afd0a4b53db 100644 |
| --- a/webrtc/modules/rtp_rtcp/source/fec_test_helper.cc |
| +++ b/webrtc/modules/rtp_rtcp/source/fec_test_helper.cc |
| @@ -13,6 +13,8 @@ |
| #include <memory> |
| #include <utility> |
| +#include "webrtc/base/checks.h" |
| +#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" |
| #include "webrtc/modules/rtp_rtcp/source/byte_io.h" |
| #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" |
| @@ -135,6 +137,36 @@ void AugmentedPacketGenerator::WriteRtpHeader(const RTPHeader& header, |
| ByteWriter<uint32_t>::WriteBigEndian(data + 8, header.ssrc); |
| } |
| +FlexfecPacketGenerator::FlexfecPacketGenerator(uint32_t media_ssrc, |
| + uint32_t flexfec_ssrc) |
| + : AugmentedPacketGenerator(media_ssrc), |
| + flexfec_ssrc_(flexfec_ssrc), |
| + flexfec_seq_num_(0), |
| + flexfec_timestamp_(0) {} |
| + |
| +std::unique_ptr<AugmentedPacket> FlexfecPacketGenerator::BuildFlexfecPacket( |
| + const ForwardErrorCorrection::Packet& packet) { |
| + RTC_DCHECK_LE(packet.length, |
| + static_cast<size_t>(IP_PACKET_SIZE - kRtpHeaderSize)); |
| + |
| + RTPHeader header; |
| + header.sequenceNumber = flexfec_seq_num_; |
| + ++flexfec_seq_num_; |
| + header.timestamp = flexfec_timestamp_; |
| + flexfec_timestamp_ += 3000; |
|
philipel
2016/09/21 11:15:27
constexpr int kMagicConstantWithSomeDescriptiveNam
brandtr
2016/09/21 11:59:21
Done.
|
| + header.ssrc = flexfec_ssrc_; |
| + |
| + std::unique_ptr<AugmentedPacket> packet_with_rtp_header( |
| + new AugmentedPacket()); |
| + memset(packet_with_rtp_header->data, 0, IP_PACKET_SIZE); |
|
philipel
2016/09/21 11:15:27
Do you really need to zero this memory?
brandtr
2016/09/21 11:59:21
No, this was overly cautious of me.
Parts of the
|
| + WriteRtpHeader(header, packet_with_rtp_header->data); |
| + memcpy(packet_with_rtp_header->data + kRtpHeaderSize, packet.data, |
| + packet.length); |
| + packet_with_rtp_header->length = kRtpHeaderSize + packet.length; |
| + |
| + return packet_with_rtp_header; |
| +} |
| + |
| UlpfecPacketGenerator::UlpfecPacketGenerator(uint32_t ssrc) |
| : AugmentedPacketGenerator(ssrc) {} |