| Index: webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc b/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
|
| index 6bc80e95d2d4b99d09c977a0d6c05f87227f1497..e666421e210df6fe873efeda11b22bb83a7502fb 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
|
| @@ -306,10 +306,10 @@ int ForwardErrorCorrection::InsertZerosInBitMasks(
|
| ++media_packets_it;
|
|
|
| // Insert the first column.
|
| - CopyColumn(tmp_packet_mask_, new_mask_bytes, packet_mask, num_mask_bytes,
|
| - num_fec_packets, 0, 0);
|
| - int new_bit_index = 1;
|
| - int old_bit_index = 1;
|
| + internal::CopyColumn(tmp_packet_mask_, new_mask_bytes, packet_mask_,
|
| + num_mask_bytes, num_fec_packets, 0, 0);
|
| + size_t new_bit_index = 1;
|
| + size_t old_bit_index = 1;
|
| // Insert zeros in the bit mask for every hole in the sequence.
|
| while (media_packets_it != media_packets.end()) {
|
| if (new_bit_index == 8 * kMaskSizeLBitSet) {
|
| @@ -317,15 +317,17 @@ int ForwardErrorCorrection::InsertZerosInBitMasks(
|
| break;
|
| }
|
| uint16_t seq_num = ParseSequenceNumber((*media_packets_it)->data);
|
| - const int zeros_to_insert =
|
| + const int num_zeros_to_insert =
|
| static_cast<uint16_t>(seq_num - prev_seq_num - 1);
|
| - if (zeros_to_insert > 0) {
|
| - InsertZeroColumns(zeros_to_insert, tmp_packet_mask_, new_mask_bytes,
|
| - num_fec_packets, new_bit_index);
|
| + if (num_zeros_to_insert > 0) {
|
| + internal::InsertZeroColumns(num_zeros_to_insert, tmp_packet_mask_,
|
| + new_mask_bytes, num_fec_packets,
|
| + new_bit_index);
|
| }
|
| - new_bit_index += zeros_to_insert;
|
| - CopyColumn(tmp_packet_mask_, new_mask_bytes, packet_mask, num_mask_bytes,
|
| - num_fec_packets, new_bit_index, old_bit_index);
|
| + new_bit_index += num_zeros_to_insert;
|
| + internal::CopyColumn(tmp_packet_mask_, new_mask_bytes, packet_mask_,
|
| + num_mask_bytes, num_fec_packets, new_bit_index,
|
| + old_bit_index);
|
| ++new_bit_index;
|
| ++old_bit_index;
|
| prev_seq_num = seq_num;
|
| @@ -343,38 +345,6 @@ int ForwardErrorCorrection::InsertZerosInBitMasks(
|
| return new_bit_index;
|
| }
|
|
|
| -void ForwardErrorCorrection::InsertZeroColumns(int num_zeros,
|
| - uint8_t* new_mask,
|
| - int new_mask_bytes,
|
| - int num_fec_packets,
|
| - int new_bit_index) {
|
| - for (uint16_t row = 0; row < num_fec_packets; ++row) {
|
| - const int new_byte_index = row * new_mask_bytes + new_bit_index / 8;
|
| - const int max_shifts = (7 - (new_bit_index % 8));
|
| - new_mask[new_byte_index] <<= std::min(num_zeros, max_shifts);
|
| - }
|
| -}
|
| -
|
| -void ForwardErrorCorrection::CopyColumn(uint8_t* new_mask,
|
| - int new_mask_bytes,
|
| - uint8_t* old_mask,
|
| - int old_mask_bytes,
|
| - int num_fec_packets,
|
| - int new_bit_index,
|
| - int old_bit_index) {
|
| - // Copy column from the old mask to the beginning of the new mask and shift it
|
| - // out from the old mask.
|
| - for (uint16_t row = 0; row < num_fec_packets; ++row) {
|
| - int new_byte_index = row * new_mask_bytes + new_bit_index / 8;
|
| - int old_byte_index = row * old_mask_bytes + old_bit_index / 8;
|
| - new_mask[new_byte_index] |= ((old_mask[old_byte_index] & 0x80) >> 7);
|
| - if (new_bit_index % 8 != 7) {
|
| - new_mask[new_byte_index] <<= 1;
|
| - }
|
| - old_mask[old_byte_index] <<= 1;
|
| - }
|
| -}
|
| -
|
| void ForwardErrorCorrection::GenerateFecUlpHeaders(
|
| const PacketList& media_packets,
|
| uint8_t* packet_mask,
|
|
|