This class will interface RTPSenderVideo with the underlying erasure code. It is functionally similar to ProducerFec (to be renamed UlpfecGenerator). In fact, the FlexfecSender is a friend of ProducerFec, and reuses most of its implementation. Besides the fact that FlexfecSender outputs FlexFEC packets, the main difference with ProducerFec is that FlexfecSender allocates RTP sequence numbers, whereas ProducerFec does not do this for the RED-encapsulated ULPFEC packets. This class is split as interface/implementation, since it will be owned by VideoSendStream initially. Further along, it may be owned by PacedSender. BUG=webrtc:5654 Review-Url: https://codereview.webrtc.org/2441613002 Cr-Commit-Position: refs/heads/master@{#14922}
188 lines
7.1 KiB
Python
188 lines
7.1 KiB
Python
# Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license
|
|
# that can be found in the LICENSE file in the root of the source
|
|
# tree. An additional intellectual property rights grant can be found
|
|
# in the file PATENTS. All contributing project authors may
|
|
# be found in the AUTHORS file in the root of the source tree.
|
|
|
|
{
|
|
'targets': [
|
|
{
|
|
'target_name': 'rtp_rtcp',
|
|
'type': 'static_library',
|
|
'dependencies': [
|
|
'<(webrtc_root)/common_video/common_video.gyp:common_video',
|
|
'<(webrtc_root)/modules/modules.gyp:remote_bitrate_estimator',
|
|
'<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers',
|
|
],
|
|
'sources': [
|
|
# Common
|
|
'include/flexfec_receiver.h',
|
|
'include/flexfec_sender.h',
|
|
'include/receive_statistics.h',
|
|
'include/remote_ntp_time_estimator.h',
|
|
'include/rtp_header_parser.h',
|
|
'include/rtp_payload_registry.h',
|
|
'include/rtp_receiver.h',
|
|
'include/rtp_rtcp.h',
|
|
'include/rtp_rtcp_defines.h',
|
|
'include/ulpfec_receiver.h',
|
|
'source/byte_io.h',
|
|
'source/flexfec_receiver.cc',
|
|
'source/packet_loss_stats.cc',
|
|
'source/packet_loss_stats.h',
|
|
'source/playout_delay_oracle.cc',
|
|
'source/playout_delay_oracle.h',
|
|
'source/receive_statistics_impl.cc',
|
|
'source/receive_statistics_impl.h',
|
|
'source/remote_ntp_time_estimator.cc',
|
|
'source/rtcp_packet.cc',
|
|
'source/rtcp_packet.h',
|
|
'source/rtcp_packet/app.cc',
|
|
'source/rtcp_packet/app.h',
|
|
'source/rtcp_packet/bye.cc',
|
|
'source/rtcp_packet/bye.h',
|
|
'source/rtcp_packet/common_header.cc',
|
|
'source/rtcp_packet/common_header.h',
|
|
'source/rtcp_packet/compound_packet.cc',
|
|
'source/rtcp_packet/compound_packet.h',
|
|
'source/rtcp_packet/dlrr.cc',
|
|
'source/rtcp_packet/dlrr.h',
|
|
'source/rtcp_packet/extended_jitter_report.cc',
|
|
'source/rtcp_packet/extended_jitter_report.h',
|
|
'source/rtcp_packet/extended_reports.cc',
|
|
'source/rtcp_packet/extended_reports.h',
|
|
'source/rtcp_packet/fir.cc',
|
|
'source/rtcp_packet/fir.h',
|
|
'source/rtcp_packet/nack.cc',
|
|
'source/rtcp_packet/nack.h',
|
|
'source/rtcp_packet/pli.cc',
|
|
'source/rtcp_packet/pli.h',
|
|
'source/rtcp_packet/psfb.cc',
|
|
'source/rtcp_packet/psfb.h',
|
|
'source/rtcp_packet/rapid_resync_request.cc',
|
|
'source/rtcp_packet/rapid_resync_request.h',
|
|
'source/rtcp_packet/receiver_report.cc',
|
|
'source/rtcp_packet/receiver_report.h',
|
|
'source/rtcp_packet/remb.cc',
|
|
'source/rtcp_packet/remb.h',
|
|
'source/rtcp_packet/report_block.cc',
|
|
'source/rtcp_packet/report_block.h',
|
|
'source/rtcp_packet/rpsi.cc',
|
|
'source/rtcp_packet/rpsi.h',
|
|
'source/rtcp_packet/rrtr.cc',
|
|
'source/rtcp_packet/rrtr.h',
|
|
'source/rtcp_packet/rtpfb.cc',
|
|
'source/rtcp_packet/rtpfb.h',
|
|
'source/rtcp_packet/sdes.cc',
|
|
'source/rtcp_packet/sdes.h',
|
|
'source/rtcp_packet/sender_report.cc',
|
|
'source/rtcp_packet/sender_report.h',
|
|
'source/rtcp_packet/sli.cc',
|
|
'source/rtcp_packet/sli.h',
|
|
'source/rtcp_packet/target_bitrate.cc',
|
|
'source/rtcp_packet/target_bitrate.h',
|
|
'source/rtcp_packet/tmmb_item.cc',
|
|
'source/rtcp_packet/tmmb_item.h',
|
|
'source/rtcp_packet/tmmbn.cc',
|
|
'source/rtcp_packet/tmmbn.h',
|
|
'source/rtcp_packet/tmmbr.cc',
|
|
'source/rtcp_packet/tmmbr.h',
|
|
'source/rtcp_packet/transport_feedback.cc',
|
|
'source/rtcp_packet/transport_feedback.h',
|
|
'source/rtcp_packet/voip_metric.cc',
|
|
'source/rtcp_packet/voip_metric.h',
|
|
'source/rtcp_receiver.cc',
|
|
'source/rtcp_receiver.h',
|
|
'source/rtcp_sender.cc',
|
|
'source/rtcp_sender.h',
|
|
'source/rtcp_utility.cc',
|
|
'source/rtcp_utility.h',
|
|
'source/rtp_header_extension.cc',
|
|
'source/rtp_header_extension.h',
|
|
'source/rtp_header_extensions.cc',
|
|
'source/rtp_header_extensions.h',
|
|
'source/rtp_header_parser.cc',
|
|
'source/rtp_packet.cc',
|
|
'source/rtp_packet.h',
|
|
'source/rtp_packet_received.h',
|
|
'source/rtp_packet_to_send.h',
|
|
'source/rtp_receiver_impl.cc',
|
|
'source/rtp_receiver_impl.h',
|
|
'source/rtp_rtcp_config.h',
|
|
'source/rtp_rtcp_impl.cc',
|
|
'source/rtp_rtcp_impl.h',
|
|
'source/rtp_sender.cc',
|
|
'source/rtp_sender.h',
|
|
'source/rtp_utility.cc',
|
|
'source/rtp_utility.h',
|
|
'source/ssrc_database.cc',
|
|
'source/ssrc_database.h',
|
|
'source/time_util.cc',
|
|
'source/time_util.h',
|
|
'source/tmmbr_help.cc',
|
|
'source/tmmbr_help.h',
|
|
# Audio Files
|
|
'source/dtmf_queue.cc',
|
|
'source/dtmf_queue.h',
|
|
'source/rtp_receiver_audio.cc',
|
|
'source/rtp_receiver_audio.h',
|
|
'source/rtp_sender_audio.cc',
|
|
'source/rtp_sender_audio.h',
|
|
# Video Files
|
|
'source/fec_private_tables_random.h',
|
|
'source/fec_private_tables_bursty.h',
|
|
'source/flexfec_header_reader_writer.cc',
|
|
'source/flexfec_header_reader_writer.h',
|
|
'source/flexfec_sender.cc',
|
|
'source/forward_error_correction.cc',
|
|
'source/forward_error_correction.h',
|
|
'source/forward_error_correction_internal.cc',
|
|
'source/forward_error_correction_internal.h',
|
|
'source/rtp_packet_history.cc',
|
|
'source/rtp_packet_history.h',
|
|
'source/rtp_payload_registry.cc',
|
|
'source/rtp_receiver_strategy.cc',
|
|
'source/rtp_receiver_strategy.h',
|
|
'source/rtp_receiver_video.cc',
|
|
'source/rtp_receiver_video.h',
|
|
'source/rtp_sender_video.cc',
|
|
'source/rtp_sender_video.h',
|
|
'source/video_codec_information.h',
|
|
'source/rtp_format.cc',
|
|
'source/rtp_format.h',
|
|
'source/rtp_format_h264.cc',
|
|
'source/rtp_format_h264.h',
|
|
'source/rtp_format_vp8.cc',
|
|
'source/rtp_format_vp8.h',
|
|
'source/rtp_format_vp9.cc',
|
|
'source/rtp_format_vp9.h',
|
|
'source/rtp_format_video_generic.cc',
|
|
'source/rtp_format_video_generic.h',
|
|
'source/ulpfec_generator.cc',
|
|
'source/ulpfec_generator.h',
|
|
'source/ulpfec_header_reader_writer.cc',
|
|
'source/ulpfec_header_reader_writer.h',
|
|
'source/ulpfec_receiver_impl.cc',
|
|
'source/ulpfec_receiver_impl.h',
|
|
'source/vp8_partition_aggregator.cc',
|
|
'source/vp8_partition_aggregator.h',
|
|
# Mocks
|
|
'mocks/mock_rtp_rtcp.h',
|
|
'mocks/mock_recovered_packet_receiver.h',
|
|
'source/mock/mock_rtp_payload_strategy.h',
|
|
], # source
|
|
'conditions': [
|
|
['enable_bwe_test_logging==1', {
|
|
'defines': [ 'BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=1' ],
|
|
}, {
|
|
'defines': [ 'BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=0' ],
|
|
}],
|
|
],
|
|
# TODO(jschuh): Bug 1348: fix size_t to int truncations.
|
|
'msvs_disabled_warnings': [ 4267, ],
|
|
},
|
|
],
|
|
}
|