Chromium Code Reviews| Index: webrtc/call/call.cc |
| diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc |
| index dd08d770ee850c0ff17d10bd732a97a7cc3a5495..e3a86a9bd193948fdcfaad8392180548d5e1ff51 100644 |
| --- a/webrtc/call/call.cc |
| +++ b/webrtc/call/call.cc |
| @@ -18,6 +18,7 @@ |
| #include "webrtc/audio/audio_send_stream.h" |
| #include "webrtc/audio/audio_state.h" |
| #include "webrtc/audio/scoped_voe_interface.h" |
| +#include "webrtc/base/basictypes.h" |
| #include "webrtc/base/checks.h" |
| #include "webrtc/base/constructormagic.h" |
| #include "webrtc/base/logging.h" |
| @@ -32,6 +33,7 @@ |
| #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" |
| #include "webrtc/modules/congestion_controller/include/congestion_controller.h" |
| #include "webrtc/modules/pacing/paced_sender.h" |
| +#include "webrtc/modules/rtp_rtcp/include/flexfec_receiver.h" |
| #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h" |
| #include "webrtc/modules/rtp_rtcp/source/byte_io.h" |
| #include "webrtc/modules/utility/include/process_thread.h" |
| @@ -57,6 +59,7 @@ namespace internal { |
| class Call : public webrtc::Call, |
| public PacketReceiver, |
| + public RecoveredPacketReceiver, |
| public CongestionController::Observer, |
| public BitrateAllocator::LimitObserver { |
| public: |
| @@ -91,6 +94,9 @@ class Call : public webrtc::Call, |
| size_t length, |
| const PacketTime& packet_time) override; |
| + // Implements RecoveredPacketReceiver. |
| + bool OnRecoveredPacket(const uint8_t* packet, size_t length) override; |
| + |
| void SetBitrateConfig( |
| const webrtc::Call::Config::BitrateConfig& bitrate_config) override; |
| @@ -948,5 +954,16 @@ PacketReceiver::DeliveryStatus Call::DeliverPacket( |
| return DeliverRtp(media_type, packet, length, packet_time); |
| } |
| +// TODO(brandtr): Update this member function when we support protecting |
| +// audio packets with FlexFEC. |
| +bool Call::OnRecoveredPacket(const uint8_t* packet, size_t length) { |
| + uint32_t ssrc = ByteReader<uint32_t>::ReadBigEndian(&packet[8]); |
| + ReadLockScoped read_lock(*receive_crit_); |
| + auto it = video_receive_ssrcs_.find(ssrc); |
| + if (it != video_receive_ssrcs_.end()) |
|
stefan-webrtc
2016/10/10 15:42:02
nit: I prefer the opposite, i.e., that errors are
brandtr
2016/10/10 23:05:19
I think your suggestion makes it neater, so I've c
|
| + return it->second->OnRecoveredPacket(packet, length); |
| + return false; |
| +} |
| + |
| } // namespace internal |
| } // namespace webrtc |