diff --git a/webrtc/audio/BUILD.gn b/webrtc/audio/BUILD.gn index eba088050c..1757e4e0dd 100644 --- a/webrtc/audio/BUILD.gn +++ b/webrtc/audio/BUILD.gn @@ -40,6 +40,7 @@ rtc_static_library("audio") { "../base:rtc_base_approved", "../base:rtc_task_queue", "../call:call_interfaces", + "../call:rtp_interfaces", "../common_audio", "../modules/audio_coding:cng", "../modules/audio_device", diff --git a/webrtc/audio/audio_receive_stream.h b/webrtc/audio/audio_receive_stream.h index d0b5a4d1cb..7dcc6d3c53 100644 --- a/webrtc/audio/audio_receive_stream.h +++ b/webrtc/audio/audio_receive_stream.h @@ -19,7 +19,7 @@ #include "webrtc/base/constructormagic.h" #include "webrtc/base/thread_checker.h" #include "webrtc/call/audio_receive_stream.h" -#include "webrtc/call/rtp_demuxer.h" +#include "webrtc/call/rtp_packet_sink_interface.h" #include "webrtc/call/syncable.h" namespace webrtc { diff --git a/webrtc/call/BUILD.gn b/webrtc/call/BUILD.gn index 8360534f41..7caad9638b 100644 --- a/webrtc/call/BUILD.gn +++ b/webrtc/call/BUILD.gn @@ -16,12 +16,11 @@ rtc_source_set("call_interfaces") { "audio_state.h", "call.h", "flexfec_receive_stream.h", - "rtp_demuxer.h", - "rtp_transport_controller_send_interface.h", "syncable.cc", "syncable.h", ] deps = [ + ":rtp_interfaces", "..:video_stream_api", "..:webrtc_common", "../api:audio_mixer_api", @@ -33,17 +32,47 @@ rtc_source_set("call_interfaces") { ] } +# TODO(nisse): These RTP targets should be moved elsewhere +# when interfaces have stabilized. +rtc_source_set("rtp_interfaces") { + sources = [ + "rtp_packet_sink_interface.h", + "rtp_transport_controller_send_interface.h", + ] +} + +rtc_source_set("rtp_receiver") { + sources = [ + "rtp_demuxer.cc", + "rtp_demuxer.h", + "rtx_receive_stream.cc", + "rtx_receive_stream.h", + ] + deps = [ + ":rtp_interfaces", + "../base:rtc_base_approved", + "../modules/rtp_rtcp", + ] +} + +rtc_source_set("rtp_sender") { + sources = [ + "rtp_transport_controller_send.cc", + "rtp_transport_controller_send.h", + ] + deps = [ + ":rtp_interfaces", + "../base:rtc_base_approved", + "../modules/congestion_controller", + ] +} + rtc_static_library("call") { sources = [ "bitrate_allocator.cc", "call.cc", "flexfec_receive_stream_impl.cc", "flexfec_receive_stream_impl.h", - "rtp_demuxer.cc", - "rtp_transport_controller_send.cc", - "rtp_transport_controller_send.h", - "rtx_receive_stream.cc", - "rtx_receive_stream.h", ] if (!build_with_chromium && is_clang) { @@ -58,6 +87,9 @@ rtc_static_library("call") { deps = [ ":call_interfaces", + ":rtp_interfaces", + ":rtp_receiver", + ":rtp_sender", "..:webrtc_common", "../api:transport_api", "../audio", @@ -94,6 +126,9 @@ if (rtc_include_tests) { ] deps = [ ":call", + ":rtp_interfaces", + ":rtp_receiver", + ":rtp_sender", "../api:mock_audio_mixer", "../base:rtc_base_approved", "../logging:rtc_event_log_api", diff --git a/webrtc/call/flexfec_receive_stream_impl.h b/webrtc/call/flexfec_receive_stream_impl.h index 39fcaa7614..e4c22942e6 100644 --- a/webrtc/call/flexfec_receive_stream_impl.h +++ b/webrtc/call/flexfec_receive_stream_impl.h @@ -15,7 +15,7 @@ #include "webrtc/base/criticalsection.h" #include "webrtc/call/flexfec_receive_stream.h" -#include "webrtc/call/rtp_demuxer.h" +#include "webrtc/call/rtp_packet_sink_interface.h" namespace webrtc { diff --git a/webrtc/call/rtp_demuxer.cc b/webrtc/call/rtp_demuxer.cc index d7179c04ac..916e612c17 100644 --- a/webrtc/call/rtp_demuxer.cc +++ b/webrtc/call/rtp_demuxer.cc @@ -10,6 +10,7 @@ #include "webrtc/base/checks.h" #include "webrtc/call/rtp_demuxer.h" +#include "webrtc/call/rtp_packet_sink_interface.h" #include "webrtc/modules/rtp_rtcp/source/rtp_packet_received.h" namespace webrtc { diff --git a/webrtc/call/rtp_demuxer.h b/webrtc/call/rtp_demuxer.h index e1a81603dd..2c9b725279 100644 --- a/webrtc/call/rtp_demuxer.h +++ b/webrtc/call/rtp_demuxer.h @@ -15,13 +15,7 @@ namespace webrtc { class RtpPacketReceived; - -// This class represents a receiver of an already parsed RTP packets. -class RtpPacketSinkInterface { - public: - virtual ~RtpPacketSinkInterface() {} - virtual void OnRtpPacket(const RtpPacketReceived& packet) = 0; -}; +class RtpPacketSinkInterface; // This class represents the RTP demuxing, for a single RTP session (i.e., one // ssrc space, see RFC 7656). It isn't thread aware, leaving responsibility of diff --git a/webrtc/call/rtp_demuxer_unittest.cc b/webrtc/call/rtp_demuxer_unittest.cc index 6aee11e763..9b47c41f26 100644 --- a/webrtc/call/rtp_demuxer_unittest.cc +++ b/webrtc/call/rtp_demuxer_unittest.cc @@ -15,6 +15,7 @@ #include "webrtc/base/arraysize.h" #include "webrtc/base/checks.h" #include "webrtc/base/ptr_util.h" +#include "webrtc/call/rtp_packet_sink_interface.h" #include "webrtc/modules/rtp_rtcp/source/rtp_packet_received.h" #include "webrtc/test/gmock.h" #include "webrtc/test/gtest.h" diff --git a/webrtc/call/rtp_packet_sink_interface.h b/webrtc/call/rtp_packet_sink_interface.h new file mode 100644 index 0000000000..900ca354d4 --- /dev/null +++ b/webrtc/call/rtp_packet_sink_interface.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2017 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. + */ +#ifndef WEBRTC_CALL_RTP_PACKET_SINK_INTERFACE_H_ +#define WEBRTC_CALL_RTP_PACKET_SINK_INTERFACE_H_ + +namespace webrtc { + +class RtpPacketReceived; + +// This class represents a receiver of an already parsed RTP packets. +class RtpPacketSinkInterface { + public: + virtual ~RtpPacketSinkInterface() {} + virtual void OnRtpPacket(const RtpPacketReceived& packet) = 0; +}; + +} // namespace webrtc + +#endif // WEBRTC_CALL_RTP_PACKET_SINK_INTERFACE_H_ diff --git a/webrtc/call/rtx_receive_stream.h b/webrtc/call/rtx_receive_stream.h index 1f57580739..2830dd31f5 100644 --- a/webrtc/call/rtx_receive_stream.h +++ b/webrtc/call/rtx_receive_stream.h @@ -13,7 +13,7 @@ #include -#include "webrtc/call/rtp_demuxer.h" +#include "webrtc/call/rtp_packet_sink_interface.h" namespace webrtc { diff --git a/webrtc/video/BUILD.gn b/webrtc/video/BUILD.gn index 19d0e93b66..cc16269dd7 100644 --- a/webrtc/video/BUILD.gn +++ b/webrtc/video/BUILD.gn @@ -62,6 +62,7 @@ rtc_static_library("video") { "../base:rtc_numerics", "../base:rtc_task_queue", "../call:call_interfaces", + "../call:rtp_interfaces", "../common_video", "../logging:rtc_event_log_api", "../media:rtc_media_base", diff --git a/webrtc/video/video_receive_stream.h b/webrtc/video/video_receive_stream.h index 6656b34963..9cf7215f1b 100644 --- a/webrtc/video/video_receive_stream.h +++ b/webrtc/video/video_receive_stream.h @@ -15,7 +15,7 @@ #include #include "webrtc/base/thread_checker.h" -#include "webrtc/call/rtp_demuxer.h" +#include "webrtc/call/rtp_packet_sink_interface.h" #include "webrtc/call/syncable.h" #include "webrtc/common_video/include/incoming_video_stream.h" #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" diff --git a/webrtc/voice_engine/BUILD.gn b/webrtc/voice_engine/BUILD.gn index 429c346f8c..253eacb59d 100644 --- a/webrtc/voice_engine/BUILD.gn +++ b/webrtc/voice_engine/BUILD.gn @@ -144,13 +144,10 @@ rtc_static_library("voice_engine") { "../audio/utility:audio_frame_operations", "../base:rtc_base_approved", "../base:rtc_task_queue", - "../modules:module_api", - - # TODO(nisse): Delete when declaration of RtpTransportController - # and related interfaces move to api/. - "../call:call_interfaces", + "../call:rtp_interfaces", "../common_audio", "../logging:rtc_event_log_api", + "../modules:module_api", "../modules/audio_coding:audio_format_conversion", "../modules/audio_coding:rent_a_codec", "../modules/audio_conference_mixer",