Index: net/quic/quic_fec_group.cc |
=================================================================== |
--- net/quic/quic_fec_group.cc (revision 268584) |
+++ net/quic/quic_fec_group.cc (working copy) |
@@ -22,12 +22,14 @@ |
QuicFecGroup::QuicFecGroup() |
: min_protected_packet_(kNoSequenceNumber), |
max_protected_packet_(kNoSequenceNumber), |
- payload_parity_len_(0) { |
+ payload_parity_len_(0), |
+ effective_encryption_level_(NUM_ENCRYPTION_LEVELS) { |
} |
QuicFecGroup::~QuicFecGroup() {} |
-bool QuicFecGroup::Update(const QuicPacketHeader& header, |
+bool QuicFecGroup::Update(EncryptionLevel encryption_level, |
+ const QuicPacketHeader& header, |
StringPiece decrypted_payload) { |
if (received_packets_.count(header.packet_sequence_number) != 0) { |
return false; |
@@ -44,10 +46,14 @@ |
return false; |
} |
received_packets_.insert(header.packet_sequence_number); |
+ if (encryption_level < effective_encryption_level_) { |
+ effective_encryption_level_ = encryption_level; |
+ } |
return true; |
} |
bool QuicFecGroup::UpdateFec( |
+ EncryptionLevel encryption_level, |
QuicPacketSequenceNumber fec_packet_sequence_number, |
const QuicFecData& fec) { |
if (min_protected_packet_ != kNoSequenceNumber) { |
@@ -66,6 +72,9 @@ |
} |
min_protected_packet_ = fec.fec_group; |
max_protected_packet_ = fec_packet_sequence_number - 1; |
+ if (encryption_level < effective_encryption_level_) { |
+ effective_encryption_level_ = encryption_level; |
+ } |
return true; |
} |