Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc

Issue 2110763002: Style updates to ProducerFec/FecReceiver. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rename kNumPacketsPerFrameThresholdForMinNumMediaPacketsAdditiveAdaptation Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
index 3affb318aa70428e2a20489abf14d1cffdd3f397..4f420c47a8b39854811708de9894bb2bed8881f7 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
@@ -113,14 +113,14 @@ void RTPSenderVideo::SendVideoPacketAsRed(uint8_t* data_buffer,
StorageType media_packet_storage,
bool protect) {
std::unique_ptr<RedPacket> red_packet;
- std::vector<RedPacket*> fec_packets;
+ std::vector<std::unique_ptr<RedPacket>> fec_packets;
StorageType fec_storage = kDontRetransmit;
uint16_t next_fec_sequence_number = 0;
{
// Only protect while creating RED and FEC packets, not when sending.
rtc::CritScope cs(&crit_);
- red_packet.reset(producer_fec_.BuildRedPacket(
- data_buffer, payload_length, rtp_header_length, red_payload_type_));
+ red_packet = ProducerFec::BuildRedPacket(
+ data_buffer, payload_length, rtp_header_length, red_payload_type_);
if (protect) {
producer_fec_.AddRtpPacketAndGenerateFec(data_buffer, payload_length,
rtp_header_length);
@@ -129,7 +129,7 @@ void RTPSenderVideo::SendVideoPacketAsRed(uint8_t* data_buffer,
if (num_fec_packets > 0) {
next_fec_sequence_number =
_rtpSender.AllocateSequenceNumber(num_fec_packets);
- fec_packets = producer_fec_.GetFecPackets(
+ fec_packets = producer_fec_.GetFecPacketsAsRed(
red_payload_type_, fec_payload_type_, next_fec_sequence_number,
rtp_header_length);
RTC_DCHECK_EQ(num_fec_packets, fec_packets.size());
@@ -148,7 +148,7 @@ void RTPSenderVideo::SendVideoPacketAsRed(uint8_t* data_buffer,
} else {
LOG(LS_WARNING) << "Failed to send RED packet " << media_seq_num;
}
- for (RedPacket* fec_packet : fec_packets) {
+ for (const auto& fec_packet : fec_packets) {
if (_rtpSender.SendToNetwork(
fec_packet->data(), fec_packet->length() - rtp_header_length,
rtp_header_length, capture_time_ms, fec_storage,
@@ -161,9 +161,9 @@ void RTPSenderVideo::SendVideoPacketAsRed(uint8_t* data_buffer,
LOG(LS_WARNING) << "Failed to send FEC packet "
<< next_fec_sequence_number;
}
- delete fec_packet;
++next_fec_sequence_number;
}
+ fec_packets.clear();
danilchap 2016/07/19 14:55:32 needed? (fec_packets is a local variable and this
brandtr 2016/07/21 09:03:58 Good point :)
}
void RTPSenderVideo::SetGenericFECStatus(const bool enable,
@@ -242,7 +242,11 @@ int32_t RTPSenderVideo::SendVideo(const RtpVideoCodecTypes videoType,
rtc::CritScope cs(&crit_);
FecProtectionParams* fec_params =
frameType == kVideoFrameKey ? &key_fec_params_ : &delta_fec_params_;
- producer_fec_.SetFecParameters(fec_params, 0);
+ // TODO(brandtr): Note that we currently do not use unequal protection in
danilchap 2016/07/19 14:55:32 TODO hints that something should be done in the fu
brandtr 2016/07/21 09:03:58 Done.
+ // the FEC. This is signalled both here (by setting the number of important
+ // packets to zero), as well as in ProducerFec::AddRtpPacketAndGenerateFec.
+ const int kNumImportantPackets = 0;
danilchap 2016/07/19 14:55:33 might be constexpr.
brandtr 2016/07/21 09:03:58 Done.
+ producer_fec_.SetFecParameters(fec_params, kNumImportantPackets);
storage = packetizer->GetStorageType(_retransmissionSettings);
red_payload_type = red_payload_type_;
}

Powered by Google App Engine
This is Rietveld 408576698