summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc')
-rw-r--r--chromium/third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc69
1 files changed, 20 insertions, 49 deletions
diff --git a/chromium/third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc b/chromium/third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
index 189e1b052f9..31303c8ad19 100644
--- a/chromium/third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
+++ b/chromium/third_party/webrtc/modules/rtp_rtcp/source/forward_error_correction.cc
@@ -17,15 +17,13 @@
#include <algorithm>
#include <iterator>
+#include "webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h"
#include "webrtc/modules/rtp_rtcp/source/forward_error_correction_internal.h"
#include "webrtc/modules/rtp_rtcp/source/rtp_utility.h"
-#include "webrtc/system_wrappers/interface/trace.h"
+#include "webrtc/system_wrappers/interface/logging.h"
namespace webrtc {
-// Minimum RTP header size in bytes.
-const uint8_t kRtpHeaderSize = 12;
-
// FEC header size in bytes.
const uint8_t kFecHeaderSize = 10;
@@ -84,9 +82,8 @@ ForwardErrorCorrection::ReceivedPacket::~ReceivedPacket() {}
ForwardErrorCorrection::RecoveredPacket::RecoveredPacket() {}
ForwardErrorCorrection::RecoveredPacket::~RecoveredPacket() {}
-ForwardErrorCorrection::ForwardErrorCorrection(int32_t id)
- : id_(id),
- generated_fec_packets_(kMaxMediaPackets),
+ForwardErrorCorrection::ForwardErrorCorrection()
+ : generated_fec_packets_(kMaxMediaPackets),
fec_packet_received_(false) {}
ForwardErrorCorrection::~ForwardErrorCorrection() {}
@@ -114,43 +111,23 @@ int32_t ForwardErrorCorrection::GenerateFEC(const PacketList& media_packet_list,
bool use_unequal_protection,
FecMaskType fec_mask_type,
PacketList* fec_packet_list) {
- if (media_packet_list.empty()) {
- WEBRTC_TRACE(kTraceError, kTraceRtpRtcp, id_,
- "%s media packet list is empty", __FUNCTION__);
- return -1;
- }
- if (!fec_packet_list->empty()) {
- WEBRTC_TRACE(kTraceError, kTraceRtpRtcp, id_,
- "%s FEC packet list is not empty", __FUNCTION__);
- return -1;
- }
const uint16_t num_media_packets = media_packet_list.size();
- bool l_bit = (num_media_packets > 8 * kMaskSizeLBitClear);
- int num_maskBytes = l_bit ? kMaskSizeLBitSet : kMaskSizeLBitClear;
+
+ // Sanity check arguments.
+ assert(num_media_packets > 0);
+ assert(num_important_packets >= 0 &&
+ num_important_packets <= num_media_packets);
+ assert(fec_packet_list->empty());
if (num_media_packets > kMaxMediaPackets) {
- WEBRTC_TRACE(kTraceError, kTraceRtpRtcp, id_,
- "%s can only protect %d media packets per frame; %d requested",
- __FUNCTION__, kMaxMediaPackets, num_media_packets);
+ LOG(LS_WARNING) << "Can't protect " << num_media_packets
+ << " media packets per frame. Max is " << kMaxMediaPackets;
return -1;
}
- // Error checking on the number of important packets.
- // Can't have more important packets than media packets.
- if (num_important_packets > num_media_packets) {
- WEBRTC_TRACE(
- kTraceError, kTraceRtpRtcp, id_,
- "Number of important packets (%d) greater than number of media "
- "packets (%d)",
- num_important_packets, num_media_packets);
- return -1;
- }
- if (num_important_packets < 0) {
- WEBRTC_TRACE(kTraceError, kTraceRtpRtcp, id_,
- "Number of important packets (%d) less than zero",
- num_important_packets);
- return -1;
- }
+ bool l_bit = (num_media_packets > 8 * kMaskSizeLBitClear);
+ int num_maskBytes = l_bit ? kMaskSizeLBitSet : kMaskSizeLBitClear;
+
// Do some error checking on the media packets.
PacketList::const_iterator media_list_it = media_packet_list.begin();
while (media_list_it != media_packet_list.end()) {
@@ -158,20 +135,16 @@ int32_t ForwardErrorCorrection::GenerateFEC(const PacketList& media_packet_list,
assert(media_packet);
if (media_packet->length < kRtpHeaderSize) {
- WEBRTC_TRACE(kTraceError, kTraceRtpRtcp, id_,
- "%s media packet (%d bytes) is smaller than RTP header",
- __FUNCTION__, media_packet->length);
+ LOG(LS_WARNING) << "Media packet " << media_packet->length << " bytes "
+ << "is smaller than RTP header.";
return -1;
}
// Ensure our FEC packets will fit in a typical MTU.
if (media_packet->length + PacketOverhead() + kTransportOverhead >
IP_PACKET_SIZE) {
- WEBRTC_TRACE(
- kTraceError, kTraceRtpRtcp, id_,
- "%s media packet (%d bytes) with overhead is larger than MTU(%d)",
- __FUNCTION__, media_packet->length, IP_PACKET_SIZE);
- return -1;
+ LOG(LS_WARNING) << "Media packet " << media_packet->length << " bytes "
+ << "with overhead is larger than " << IP_PACKET_SIZE;
}
media_list_it++;
}
@@ -584,9 +557,7 @@ void ForwardErrorCorrection::InsertFECPacket(
}
if (fec_packet->protected_pkt_list.empty()) {
// All-zero packet mask; we can discard this FEC packet.
- WEBRTC_TRACE(kTraceWarning, kTraceRtpRtcp, id_,
- "FEC packet %u has an all-zero packet mask.",
- fec_packet->seq_num, __FUNCTION__);
+ LOG(LS_WARNING) << "FEC packet has an all-zero packet mask.";
delete fec_packet;
} else {
AssignRecoveredPackets(fec_packet, recovered_packet_list);