Allow VideoTimingExtension to be used with FEC

This CL allows for FEC protection of packets with VideoTimingExtension by
zero-ing out data, which is changed after FEC protection is generated (i.e
in the pacer or by the SFU).

Actual FEC protection of these packets would be enabled later, when all
modern receivers have this change.

Bug: webrtc:10750
Change-Id: If4785392204d68cb8527629727b5c062f9fb6600
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143760
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28396}
This commit is contained in:
Ilya Nikolaevskiy
2019-06-26 14:39:36 +02:00
committed by Commit Bot
parent e4ac723bdc
commit 2d821c3cbc
12 changed files with 100 additions and 131 deletions

View File

@ -17,6 +17,7 @@
#include <vector>
#include "api/rtp_headers.h"
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "modules/rtp_rtcp/include/ulpfec_receiver.h"
#include "modules/rtp_rtcp/source/forward_error_correction.h"
@ -26,7 +27,9 @@ namespace webrtc {
class UlpfecReceiverImpl : public UlpfecReceiver {
public:
explicit UlpfecReceiverImpl(uint32_t ssrc, RecoveredPacketReceiver* callback);
explicit UlpfecReceiverImpl(uint32_t ssrc,
RecoveredPacketReceiver* callback,
rtc::ArrayView<const RtpExtension> extensions);
~UlpfecReceiverImpl() override;
int32_t AddReceivedRedPacket(const RTPHeader& rtp_header,
@ -40,6 +43,7 @@ class UlpfecReceiverImpl : public UlpfecReceiver {
private:
const uint32_t ssrc_;
const RtpHeaderExtensionMap extensions_;
rtc::CriticalSection crit_sect_;
RecoveredPacketReceiver* recovered_packet_callback_;