Chromium Code Reviews| 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.
|
| } |