Chromium Code Reviews

Unified Diff: webrtc/modules/rtp_rtcp/source/producer_fec.cc

Issue 2099243003: Use std::unique_ptr in ForwardErrorCorrection. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@flexfec-pt1a_mini-fixes-in-ULPFEC
Patch Set: Feedback response. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Index: webrtc/modules/rtp_rtcp/source/producer_fec.cc
diff --git a/webrtc/modules/rtp_rtcp/source/producer_fec.cc b/webrtc/modules/rtp_rtcp/source/producer_fec.cc
index 6fe285fed977eef9c47eb35b1d2db8643b405864..ff16447410edc5dac05117ba813ade61ea753750 100644
--- a/webrtc/modules/rtp_rtcp/source/producer_fec.cc
+++ b/webrtc/modules/rtp_rtcp/source/producer_fec.cc
@@ -139,11 +139,11 @@ int ProducerFec::AddRtpPacketAndGenerateFec(const uint8_t* data_buffer,
const bool marker_bit = (data_buffer[1] & kRtpMarkerBitMask) ? true : false;
if (media_packets_fec_.size() < ForwardErrorCorrection::kMaxMediaPackets) {
// Generic FEC can only protect up to kMaxMediaPackets packets.
- ForwardErrorCorrection::Packet* packet =
- new ForwardErrorCorrection::Packet();
+ std::unique_ptr<ForwardErrorCorrection::Packet> packet(
+ new ForwardErrorCorrection::Packet());
packet->length = payload_length + rtp_header_length;
memcpy(packet->data, data_buffer, packet->length);
- media_packets_fec_.push_back(packet);
+ media_packets_fec_.push_back(std::move(packet));
}
if (marker_bit) {
++num_frames_;
@@ -219,7 +219,7 @@ std::vector<RedPacket*> ProducerFec::GetFecPackets(int red_pl_type,
// media packet.
ForwardErrorCorrection::Packet* packet_to_send = fec_packets_.front();
ForwardErrorCorrection::Packet* last_media_packet =
- media_packets_fec_.back();
+ media_packets_fec_.back().get();
RedPacket* red_packet = new RedPacket(
packet_to_send->length + kREDForFECHeaderLength + rtp_header_length);
@@ -251,10 +251,7 @@ int ProducerFec::Overhead() const {
}
void ProducerFec::DeletePackets() {
- while (!media_packets_fec_.empty()) {
- delete media_packets_fec_.front();
- media_packets_fec_.pop_front();
- }
+ media_packets_fec_.clear();
assert(media_packets_fec_.empty());
danilchap 2016/06/30 19:58:37 remove this assert
brandtr 2016/07/01 10:45:34 Done.
}

Powered by Google App Engine