When Ulpfec recovers a packet, set |returned| flag earlier.

This avoids infinite recursion in case the recovered packet carries a
RED header.

BUG=chromium:754748

Review-Url: https://codereview.webrtc.org/3004553002
Cr-Commit-Position: refs/heads/master@{#19525}
This commit is contained in:
nisse 2017-08-25 09:08:44 -07:00 committed by Commit Bot
parent a7a4beb419
commit 41476e014c

View File

@ -241,11 +241,13 @@ int32_t UlpfecReceiverImpl::ProcessReceivedFec() {
}
ForwardErrorCorrection::Packet* packet = recovered_packet->pkt;
++packet_counter_.num_recovered_packets;
// Set this flag first; in case the recovered packet carries a RED
// header, OnRecoveredPacket will recurse back here.
recovered_packet->returned = true;
crit_sect_.Leave();
recovered_packet_callback_->OnRecoveredPacket(packet->data,
packet->length);
crit_sect_.Enter();
recovered_packet->returned = true;
}
crit_sect_.Leave();
return 0;