| Index: modules/rtp_rtcp/source/ulpfec_receiver_impl.cc | 
| diff --git a/modules/rtp_rtcp/source/ulpfec_receiver_impl.cc b/modules/rtp_rtcp/source/ulpfec_receiver_impl.cc | 
| index a35393d73252b32c32f815765a254d34a4d8a8da..4292f3ca625b984798811316bb04781189e892c0 100644 | 
| --- a/modules/rtp_rtcp/source/ulpfec_receiver_impl.cc | 
| +++ b/modules/rtp_rtcp/source/ulpfec_receiver_impl.cc | 
| @@ -216,23 +216,22 @@ int32_t UlpfecReceiverImpl::AddReceivedRedPacket( | 
| return 0; | 
| } | 
|  | 
| +// TODO(nisse): Drop always-zero return value. | 
| int32_t UlpfecReceiverImpl::ProcessReceivedFec() { | 
| crit_sect_.Enter(); | 
| -  if (!received_packets_.empty()) { | 
| +  for (const auto& received_packet : received_packets_) { | 
| // Send received media packet to VCM. | 
| -    if (!received_packets_.front()->is_fec) { | 
| -      ForwardErrorCorrection::Packet* packet = received_packets_.front()->pkt; | 
| +    if (!received_packet->is_fec) { | 
| +      ForwardErrorCorrection::Packet* packet = received_packet->pkt; | 
| crit_sect_.Leave(); | 
| recovered_packet_callback_->OnRecoveredPacket(packet->data, | 
| packet->length); | 
| crit_sect_.Enter(); | 
| } | 
| -    if (fec_->DecodeFec(&received_packets_, &recovered_packets_) != 0) { | 
| -      crit_sect_.Leave(); | 
| -      return -1; | 
| -    } | 
| -    RTC_DCHECK(received_packets_.empty()); | 
| +    fec_->DecodeFec(*received_packet, &recovered_packets_); | 
| } | 
| +  received_packets_.clear(); | 
| + | 
| // Send any recovered media packets to VCM. | 
| for (const auto& recovered_packet : recovered_packets_) { | 
| if (recovered_packet->returned) { | 
|  |