webrtc/pc
Anton Sukhanov 1a13c8f11a Add option to remove transport sequence number from FEC packet calculation
This is experimental field trial to exclude transport sequence number from FEC packets and should only be used in conjunction with datagram transport. Datagram transport removes transport sequence numbers from RTP packets and uses datagram feedback loop to re-generate RTCP feedback packets, but FEC contorol packets are calculated before sequence number is removed and as a result recovered packets will be corrupt unless we also remove transport sequence number during FEC calculations.

This change is a bit embarrassing, but it was the easiest workaround we found to make FEC work with datagrams. Added TODO to find better long term solution.

TODO(sukhanov): We need to find find better way to implement FEC with datagram transport, probably moving FEC to datagram integration layter. Wealso remove special field trial once we switch datagram path from RTCConfiguration flags to field trial and use the same field trial for FECworkaround.

Bug: webrtc:9719
Change-Id: I1e23c56e3cbaa087460410942fb6c5b4921a763e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146221
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28686}
2019-07-25 22:47:27 +00:00
..
test [PeerConnection] Implement restartIce(). 2019-07-18 10:00:10 +00:00
audio_rtp_receiver.cc Format almost everything. 2019-07-08 13:45:15 +00:00
audio_rtp_receiver.h Format almost everything. 2019-07-08 13:45:15 +00:00
audio_track.cc Deprecating ThreadChecker specific interface. 2019-04-08 16:58:07 +00:00
audio_track.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
BUILD.gn Reland "Remove the injectable bitrate allocation strategy API." 2019-07-17 10:20:45 +00:00
channel_interface.h Creating Simulcast offer and answer in Peer Connection. 2019-01-28 18:56:02 +00:00
channel_manager_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
channel_manager.cc Change StartAecDump methods to work with FILE* and FileWrapper 2019-06-11 13:43:36 +00:00
channel_manager.h Change StartAecDump methods to work with FILE* and FileWrapper 2019-06-11 13:43:36 +00:00
channel_unittest.cc Add support for enabling and negotiating raw RTP packetization. 2019-06-04 14:35:54 +00:00
channel.cc Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
channel.h Remove rtp_ and rtcp_packet_transport() from the RtpTransport interface. 2019-05-24 23:58:46 +00:00
composite_rtp_transport_test.cc Reland: Implement true negotiation for DatagramTransport with fallback to RTP. 2019-06-07 20:14:36 +00:00
composite_rtp_transport.cc Format almost everything. 2019-07-08 13:45:15 +00:00
composite_rtp_transport.h Reland: Implement true negotiation for DatagramTransport with fallback to RTP. 2019-06-07 20:14:36 +00:00
data_channel_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
data_channel.cc Datachannel: Use absl::optional for maxRetransmits and maxRetransmitTime. 2019-04-09 08:32:43 +00:00
data_channel.h Datachannel: Use absl::optional for maxRetransmits and maxRetransmitTime. 2019-04-09 08:32:43 +00:00
datagram_dtls_adaptor.cc Add option to remove transport sequence number from FEC packet calculation 2019-07-25 22:47:27 +00:00
datagram_dtls_adaptor.h Propagate datagram SentNotification for RTCP packets 2019-07-13 00:14:49 +00:00
DEPS Remove +api from internal DEPS files. 2019-01-28 11:17:00 +00:00
dtls_srtp_transport_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
dtls_srtp_transport.cc Format almost everything. 2019-07-08 13:45:15 +00:00
dtls_srtp_transport.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
dtls_transport_unittest.cc Expose SSL ciphersuite on the webrtc::DtlsTransport interface 2019-04-12 08:29:59 +00:00
dtls_transport.cc Expose SSL ciphersuite on the webrtc::DtlsTransport interface 2019-04-12 08:29:59 +00:00
dtls_transport.h Delete unneeded includes of async_invoker.h 2019-04-16 07:28:06 +00:00
dtmf_sender_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
dtmf_sender.cc Format almost everything. 2019-07-08 13:45:15 +00:00
dtmf_sender.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
external_hmac.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
external_hmac.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
ice_server_parsing_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
ice_server_parsing.cc Format almost everything. 2019-07-08 13:45:15 +00:00
ice_server_parsing.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
ice_transport_unittest.cc Add overload to CreateIceTransport that takes additional dependencies 2019-07-01 21:37:54 +00:00
ice_transport.cc Fix comment - ice transport is cleared on the networking thread. 2019-04-09 09:12:10 +00:00
ice_transport.h Add IceTransportInterface object 2019-01-30 16:16:51 +00:00
jitter_buffer_delay_interface.h Remove SetLatency/GetLatency from MediaSourceInterface API level 2019-04-18 19:11:31 +00:00
jitter_buffer_delay_proxy.h Remove SetLatency/GetLatency from MediaSourceInterface API level 2019-04-18 19:11:31 +00:00
jitter_buffer_delay_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
jitter_buffer_delay.cc Remove SetLatency/GetLatency from MediaSourceInterface API level 2019-04-18 19:11:31 +00:00
jitter_buffer_delay.h Remove SetLatency/GetLatency from MediaSourceInterface API level 2019-04-18 19:11:31 +00:00
jsep_ice_candidate.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
jsep_session_description_unittest.cc Use the dummy address 0.0.0.0:9 in the c= and the m= lines if the 2019-07-12 05:38:20 +00:00
jsep_session_description.cc Use the dummy address 0.0.0.0:9 in the c= and the m= lines if the 2019-07-12 05:38:20 +00:00
jsep_transport_controller_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
jsep_transport_controller.cc Integrate datagram feedback loop 2019-07-11 16:22:00 +00:00
jsep_transport_controller.h Integrate datagram feedback loop 2019-07-11 16:22:00 +00:00
jsep_transport_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
jsep_transport.cc Format almost everything. 2019-07-08 13:45:15 +00:00
jsep_transport.h Reland: Implement true negotiation for DatagramTransport with fallback to RTP. 2019-06-07 20:14:36 +00:00
local_audio_source_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
local_audio_source.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
local_audio_source.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
media_protocol_names.cc Reland "Reland "Version 2 "Refactoring DataContentDescription class""" 2019-05-13 18:37:47 +00:00
media_protocol_names.h Reland "Reland "Version 2 "Refactoring DataContentDescription class""" 2019-05-13 18:37:47 +00:00
media_session_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
media_session.cc Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
media_session.h Add support for two-byte RTP header extensions to UsedRtpHeaderExtensionIds 2019-06-24 08:50:07 +00:00
media_stream_observer.cc Use Abseil container algorithms in pc/ 2019-01-29 02:33:50 +00:00
media_stream_observer.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
media_stream_track.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
media_stream_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
media_stream.cc Format almost everything. 2019-07-08 13:45:15 +00:00
media_stream.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
OWNERS Make hbos a full OWNER of pc/ 2019-06-10 19:00:34 +00:00
peer_connection_bundle_unittest.cc Let SessionDescription take ownership of MediaDescription 2019-06-03 20:07:37 +00:00
peer_connection_crypto_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
peer_connection_data_channel_unittest.cc Make TaskQueueFactory required construction parameter for Call 2019-07-03 14:02:45 +00:00
peer_connection_end_to_end_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
peer_connection_factory_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
peer_connection_factory.cc Delete deprecated version of PeerConnectionFactoryInterface::StartAecDump 2019-06-27 07:33:59 +00:00
peer_connection_factory.h Delete deprecated version of PeerConnectionFactoryInterface::StartAecDump 2019-06-27 07:33:59 +00:00
peer_connection_histogram_unittest.cc Make TaskQueueFactory required construction parameter for Call 2019-07-03 14:02:45 +00:00
peer_connection_ice_unittest.cc [PeerConnection] Implement restartIce(). 2019-07-18 10:00:10 +00:00
peer_connection_integrationtest.cc [Unit test] Add check to prevent segfault on empty vector. 2019-07-23 22:12:49 +00:00
peer_connection_interface_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
peer_connection_internal.h Use RtpSender/RtpReceiver track ID for legacy GetStats 2019-03-27 18:14:00 +00:00
peer_connection_jsep_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
peer_connection_media_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
peer_connection_rampup_tests.cc Propagate screenshare info into video track and it's source. 2019-05-29 10:14:22 +00:00
peer_connection_rtp_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
peer_connection_signaling_unittest.cc Stop using Googletest legacy APIs. 2019-01-31 13:23:33 +00:00
peer_connection_simulcast_unittest.cc Reduce kMaxSimulcastStreams to 3 2019-07-04 15:54:36 +00:00
peer_connection_wrapper.cc Format almost everything. 2019-07-08 13:45:15 +00:00
peer_connection_wrapper.h Move rtc::FunctionView to the public API 2019-03-21 15:23:05 +00:00
peer_connection.cc [PeerConnection] Implement restartIce(). 2019-07-18 10:00:10 +00:00
peer_connection.h [PeerConnection] Implement restartIce(). 2019-07-18 10:00:10 +00:00
proxy_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
remote_audio_source.cc Format almost everything. 2019-07-08 13:45:15 +00:00
remote_audio_source.h Remove SetLatency/GetLatency from MediaSourceInterface API level 2019-04-18 19:11:31 +00:00
rtc_stats_collector_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtc_stats_collector.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtc_stats_collector.h Implement RTCRemoteInboundRtpStreamStats for both audio and video. 2019-05-27 12:45:22 +00:00
rtc_stats_integrationtest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtc_stats_traversal_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
rtc_stats_traversal.cc Implement RTCRemoteInboundRtpStreamStats for both audio and video. 2019-05-27 12:45:22 +00:00
rtc_stats_traversal.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
rtcp_mux_filter_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtcp_mux_filter.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtcp_mux_filter.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtp_media_utils_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_media_utils.cc Reland "Make negotiationneeded processing in PeerConnection spec compliant." 2019-04-16 12:04:33 +00:00
rtp_media_utils.h Reland "Make negotiationneeded processing in PeerConnection spec compliant." 2019-04-16 12:04:33 +00:00
rtp_parameters_conversion_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_parameters_conversion.cc Negotiate use of RTCP loss notification feedback (LNTF) 2019-05-24 12:44:14 +00:00
rtp_parameters_conversion.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtp_receiver.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_receiver.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_sender_receiver_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_sender.cc Add RtpSenderInterface.SetStreams 2019-05-20 18:38:06 +00:00
rtp_sender.h Add RtpSenderInterface.SetStreams 2019-05-20 18:38:06 +00:00
rtp_transceiver_unittest.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
rtp_transceiver.cc Implement RTCRtpTransceiver.setCodecPreferences 2019-05-01 20:14:59 +00:00
rtp_transceiver.h Implement RTCRtpTransceiver.setCodecPreferences 2019-05-01 20:14:59 +00:00
rtp_transport_internal.h Remove rtp_ and rtcp_packet_transport() from the RtpTransport interface. 2019-05-24 23:58:46 +00:00
rtp_transport_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_transport.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_transport.h Remove rtp_ and rtcp_packet_transport() from the RtpTransport interface. 2019-05-24 23:58:46 +00:00
sctp_transport_unittest.cc Implement max-channels for SCTP datachannels. 2019-05-21 10:24:41 +00:00
sctp_transport.cc Implement max-channels for SCTP datachannels. 2019-05-21 10:24:41 +00:00
sctp_transport.h Implement max-channels for SCTP datachannels. 2019-05-21 10:24:41 +00:00
sctp_utils_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
sctp_utils.cc Datachannel: Use absl::optional for maxRetransmits and maxRetransmitTime. 2019-04-09 08:32:43 +00:00
sctp_utils.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
sdp_serializer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
sdp_serializer.cc Reland "Adding a restriction for legal RID values." 2019-04-09 21:19:31 +00:00
sdp_serializer.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
sdp_utils.cc Code cleanup: Make JsepSessionDescription::Initialize take std::unique_ptr 2019-04-12 05:42:46 +00:00
sdp_utils.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
session_description_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
session_description.cc Format almost everything. 2019-07-08 13:45:15 +00:00
session_description.h Adds test for experimental remote estimate SDP negotiation. 2019-07-24 15:29:24 +00:00
simulcast_description.cc Format almost everything. 2019-07-08 13:45:15 +00:00
simulcast_description.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
srtp_filter_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
srtp_filter.cc Format almost everything. 2019-07-08 13:45:15 +00:00
srtp_filter.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
srtp_session_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
srtp_session.cc Deprecating ThreadChecker specific interface. 2019-04-08 16:58:07 +00:00
srtp_session.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
srtp_transport_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
srtp_transport.cc Format almost everything. 2019-07-08 13:45:15 +00:00
srtp_transport.h Format almost everything. 2019-07-08 13:45:15 +00:00
stats_collector_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
stats_collector.cc Revert "Piping audio interruption metrics to API layer" 2019-04-29 11:23:16 +00:00
stats_collector.h Format almost everything. 2019-07-08 13:45:15 +00:00
stream_collection.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
track_media_info_map_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
track_media_info_map.cc [clang-tidy] Apply performance-for-range-copy fixes. 2019-01-28 09:53:50 +00:00
track_media_info_map.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
transport_stats.cc [clang-tidy] Apply performance-move-const-arg fixes (misc). 2019-02-05 15:12:20 +00:00
transport_stats.h [clang-tidy] Apply performance-move-const-arg fixes (misc). 2019-02-05 15:12:20 +00:00
used_ids_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
used_ids.h Add support for two-byte RTP header extensions to UsedRtpHeaderExtensionIds 2019-06-24 08:50:07 +00:00
video_rtp_receiver.cc Format almost everything. 2019-07-08 13:45:15 +00:00
video_rtp_receiver.h Format almost everything. 2019-07-08 13:45:15 +00:00
video_track_source.cc Format almost everything. 2019-07-08 13:45:15 +00:00
video_track_source.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
video_track_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
video_track.cc Format almost everything. 2019-07-08 13:45:15 +00:00
video_track.h Remove rtc_base/scoped_ref_ptr.h. 2019-01-25 20:29:58 +00:00
webrtc_sdp_unittest.cc Adds test for experimental remote estimate SDP negotiation. 2019-07-24 15:29:24 +00:00
webrtc_sdp.cc Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
webrtc_sdp.h Export symbols needed by the Chromium component build (part 8). 2019-04-02 10:13:36 +00:00
webrtc_session_description_factory.cc Format almost everything. 2019-07-08 13:45:15 +00:00
webrtc_session_description_factory.h Format almost everything. 2019-07-08 13:45:15 +00:00