webrtc/modules/rtp_rtcp/source
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
..
rtcp_packet Fix for potential out of bounds reading in rtcp::RemoteEstimate parser. 2019-07-25 10:54:05 +00:00
byte_io_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
byte_io.h Format almost everything. 2019-07-08 13:45:15 +00:00
contributing_sources_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
contributing_sources.cc Add RTP timestamp to contributing sources 2019-05-22 08:53:08 +00:00
contributing_sources.h Add RTP timestamp to contributing sources 2019-05-22 08:53:08 +00:00
dtmf_queue.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
dtmf_queue.h Format almost everything. 2019-07-08 13:45:15 +00:00
fec_private_tables_bursty_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fec_private_tables_bursty.cc
fec_private_tables_bursty.h
fec_private_tables_random.cc
fec_private_tables_random.h
fec_test_helper.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
fec_test_helper.h Delete use of WebRtcRTPHeader from FEC test code 2019-03-12 09:40:02 +00:00
flexfec_header_reader_writer_unittest.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
flexfec_header_reader_writer.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
flexfec_header_reader_writer.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
flexfec_receiver_unittest.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
flexfec_receiver.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
flexfec_sender_unittest.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
flexfec_sender.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
forward_error_correction_internal.cc Format almost everything. 2019-07-08 13:45:15 +00:00
forward_error_correction_internal.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
forward_error_correction.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
forward_error_correction.h Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
nack_rtx_unittest.cc Negotiation of LNTF controls instantiation of RTPSenderVideo::rtp_sequence_number_map_ 2019-05-24 13:02:06 +00:00
packet_loss_stats_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
packet_loss_stats.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
packet_loss_stats.h Format almost everything. 2019-07-08 13:45:15 +00:00
playout_delay_oracle_unittest.cc Refactor PlayoutDelayOracle with separate update methods 2019-01-30 16:50:24 +00:00
playout_delay_oracle.cc Format almost everything. 2019-07-08 13:45:15 +00:00
playout_delay_oracle.h Move ownership of RTPSenderVideo one more level up, to RtpVideoSender 2019-03-04 16:57:49 +00:00
receive_statistics_impl.cc Make ReceiveStatisticsImpl::SetMaxReorderingThreshold apply per ssrc 2019-05-27 10:53:04 +00:00
receive_statistics_impl.h Format almost everything. 2019-07-08 13:45:15 +00:00
receive_statistics_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
remote_ntp_time_estimator_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
remote_ntp_time_estimator.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
rtcp_nack_stats_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtcp_nack_stats.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
rtcp_nack_stats.h
rtcp_packet_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtcp_packet.cc Enable padding bit in TransportFeedback packets 2019-02-12 11:55:34 +00:00
rtcp_packet.h Move rtc::FunctionView to the public API 2019-03-21 15:23:05 +00:00
rtcp_receiver_unittest.cc Reland "Pass RtpRtcp::Configuration to RtcpReceiver ctor and initialize ssrcs" 2019-07-12 17:35:13 +00:00
rtcp_receiver.cc Fix for potential out of bounds reading in rtcp::RemoteEstimate parser. 2019-07-25 10:54:05 +00:00
rtcp_receiver.h Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
rtcp_sender_unittest.cc Reland "Add ability to set RTCP sender ssrc at construction time" 2019-07-12 17:32:43 +00:00
rtcp_sender.cc Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
rtcp_sender.h Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
rtcp_transceiver_config.cc
rtcp_transceiver_config.h in RtcpTransceiver remove workaround for old bug in RtcpReceiver 2018-11-19 10:13:02 +00:00
rtcp_transceiver_impl_unittest.cc Removes TimeMicros interface from ThreadProcessingFakeClock. 2019-04-17 15:37:48 +00:00
rtcp_transceiver_impl.cc Use Abseil container algorithms in modules/rtp_rtcp/ 2019-03-29 16:47:33 +00:00
rtcp_transceiver_impl.h Stop using rtc::TaskQueue::Current in RtcpTransceiver 2019-03-07 10:51:54 +00:00
rtcp_transceiver_unittest.cc Avoid using global task queue factory in RtcpTransciever tests 2019-03-20 15:20:20 +00:00
rtcp_transceiver.cc Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
rtcp_transceiver.h Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
rtp_dependency_descriptor_extension.cc Add trait to Build/Parse DependencyDescriptor rtp header extension 2019-06-28 14:21:21 +00:00
rtp_dependency_descriptor_extension.h Add trait to Build/Parse DependencyDescriptor rtp header extension 2019-06-28 14:21:21 +00:00
rtp_dependency_descriptor_reader.h Add trait to Build/Parse DependencyDescriptor rtp header extension 2019-06-28 14:21:21 +00:00
rtp_dependency_descriptor_writer.h Add trait to Build/Parse DependencyDescriptor rtp header extension 2019-06-28 14:21:21 +00:00
rtp_fec_unittest.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
rtp_format_h264_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_h264.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_h264.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_video_generic_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_video_generic.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_video_generic.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_vp8_test_helper.cc Cleanup RtpPacketizerVP8 tests 2018-08-31 08:13:45 +00:00
rtp_format_vp8_test_helper.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_format_vp8_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_vp8.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_vp8.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_vp9_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format_vp9.cc Move frame_type member from RtpDepacketizer::ParsedPayload to RTPVideoHeader 2019-04-24 13:13:04 +00:00
rtp_format_vp9.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_format.cc Add option to configure raw RTP packetization per payload type. 2019-05-23 12:38:16 +00:00
rtp_format.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_generic_frame_descriptor_extension_unittest.cc Create version 01 of Generic Frame Descriptor - with discardability flag 2019-02-20 10:31:58 +00:00
rtp_generic_frame_descriptor_extension.cc Create version 01 of Generic Frame Descriptor - with discardability flag 2019-02-20 10:31:58 +00:00
rtp_generic_frame_descriptor_extension.h Create version 01 of Generic Frame Descriptor - with discardability flag 2019-02-20 10:31:58 +00:00
rtp_generic_frame_descriptor.cc Ensure GenericFrameDescriptor byte representation match 2018-12-04 11:52:25 +00:00
rtp_generic_frame_descriptor.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_header_extension_map_unittest.cc Move RtpHeaderExtensionMap::GetTotalLengthInBytes into own file 2018-10-03 17:25:31 +00:00
rtp_header_extension_map.cc Add writing and parsing of the abs-capture-time RTP header extension. 2019-07-03 14:07:36 +00:00
rtp_header_extension_size_unittest.cc Move RtpHeaderExtensionMap::GetTotalLengthInBytes into own file 2018-10-03 17:25:31 +00:00
rtp_header_extension_size.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_header_extension_size.h Move RtpHeaderExtensionMap::GetTotalLengthInBytes into own file 2018-10-03 17:25:31 +00:00
rtp_header_extensions.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_header_extensions.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_header_parser.cc Reland "Replace RTPHeader memset with assignment from a fresh object." 2019-03-26 14:06:17 +00:00
rtp_packet_history_unittest.cc Fix issue with TransmissionOffset using new pacer code path 2019-07-24 11:24:57 +00:00
rtp_packet_history.cc Reset packet history on ssrc/seqno reset 2019-07-24 12:52:23 +00:00
rtp_packet_history.h Reset packet history on ssrc/seqno reset 2019-07-24 12:52:23 +00:00
rtp_packet_received.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_packet_received.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_packet_to_send.cc [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
rtp_packet_to_send.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_packet_unittest.cc Implements method on RtpPacket to extract extension. 2019-07-10 17:35:43 +00:00
rtp_packet.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
rtp_packet.h Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
rtp_rtcp_config.h Delete unused constants from rtp_rtcp_config.h 2018-08-09 08:38:51 +00:00
rtp_rtcp_impl_unittest.cc Reland "Add ability to set RTCP sender ssrc at construction time" 2019-07-12 17:32:43 +00:00
rtp_rtcp_impl.cc Optimize sending the MID and (R)RID header extensions 2019-07-25 19:23:14 +00:00
rtp_rtcp_impl.h Adds remote estimate RTCP packet. 2019-07-24 10:17:26 +00:00
rtp_sender_audio_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_sender_audio.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_sender_audio.h Move towards always using packet type instead of priority in RTPSender 2019-06-24 10:12:26 +00:00
rtp_sender_unittest.cc Optimize sending the MID and (R)RID header extensions 2019-07-25 19:23:14 +00:00
rtp_sender_video_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_sender_video.cc Add option to remove transport sequence number from FEC packet calculation 2019-07-25 22:47:27 +00:00
rtp_sender_video.h Add option to remove transport sequence number from FEC packet calculation 2019-07-25 22:47:27 +00:00
rtp_sender.cc Optimize sending the MID and (R)RID header extensions 2019-07-25 19:23:14 +00:00
rtp_sender.h Optimize sending the MID and (R)RID header extensions 2019-07-25 19:23:14 +00:00
rtp_sequence_number_map_unittest.cc Add RtpSequenceNumberMap::InsertFrame() 2019-04-08 12:39:08 +00:00
rtp_sequence_number_map.cc Add RtpSequenceNumberMap::InsertFrame() 2019-04-08 12:39:08 +00:00
rtp_sequence_number_map.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_utility_unittest.cc Add writing and parsing of the abs-capture-time RTP header extension. 2019-07-03 14:07:36 +00:00
rtp_utility.cc Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_utility.h Format almost everything. 2019-07-08 13:45:15 +00:00
rtp_video_header.cc Add default values for PlayoutDelay in RTPVideoHeader. 2018-11-16 12:10:23 +00:00
rtp_video_header.h Move frame_type member from RtpDepacketizer::ParsedPayload to RTPVideoHeader 2019-04-24 13:13:04 +00:00
source_tracker_unittest.cc Remove sequence_number from RtpPacketInfo. 2019-06-14 11:21:42 +00:00
source_tracker.cc Add a tracker for RTCRtpContributingSource and RTCRtpSynchronizationSource. 2019-06-12 12:11:55 +00:00
source_tracker.h Add a tracker for RTCRtpContributingSource and RTCRtpSynchronizationSource. 2019-06-12 12:11:55 +00:00
time_util_unittest.cc Removes TimeMicros interface from ThreadProcessingFakeClock. 2019-04-17 15:37:48 +00:00
time_util.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
time_util.h In ReceiveStatistics use monotonic clock instead of ntp clock 2018-11-26 10:31:44 +00:00
tmmbr_help.cc Format almost everything. 2019-07-08 13:45:15 +00:00
tmmbr_help.h Format almost everything. 2019-07-08 13:45:15 +00:00
ulpfec_generator_unittest.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
ulpfec_generator.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
ulpfec_generator.h Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
ulpfec_header_reader_writer_unittest.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
ulpfec_header_reader_writer.cc Revert "Cleanup FEC code after refactoring" 2019-07-11 19:51:17 +00:00
ulpfec_header_reader_writer.h [Cleanup] Add missing #include. Remove useless ones. 2018-10-23 11:32:56 +00:00
ulpfec_receiver_impl.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00
ulpfec_receiver_impl.h Format almost everything. 2019-07-08 13:45:15 +00:00
ulpfec_receiver_unittest.cc Revert "Refactor FEC code to use COW buffers" 2019-07-11 19:55:28 +00:00