From 078a78120fd4c1ba30b4c5785454987b2ae25705 Mon Sep 17 00:00:00 2001 From: Elad Alon Date: Mon, 2 Oct 2017 13:33:31 +0200 Subject: [PATCH] Add the internals of RtcEvent's subclasses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're moving to an RtcEventLog interface that accepts std::unique_ptr and stores the event for encoding when encoding becomes necessary, rather than before. This will be useful while we maintain the legacy (current) encoding alongside the new encoding on which we're working. This CL adds the internals of RtcEvent's subclasses - the actual data that they keep. (Work on this was broken down into several CLs in order to make reviewing easier.) BUG=webrtc:8111 Change-Id: I402c9c64bffef6a5a6d227bde5da0fd3152daba1 Reviewed-on: https://webrtc-review.googlesource.com/1362 Commit-Queue: Elad Alon Reviewed-by: Björn Terelius Cr-Commit-Position: refs/heads/master@{#20108} --- logging/BUILD.gn | 3 +++ logging/rtc_event_log/events/rtc_event.h | 7 +++++++ .../events/rtc_event_audio_network_adaptation.cc | 10 ++++++++++ .../events/rtc_event_audio_network_adaptation.h | 10 +++++++++- .../rtc_event_log/events/rtc_event_audio_playout.cc | 2 ++ .../rtc_event_log/events/rtc_event_audio_playout.h | 3 +++ .../events/rtc_event_audio_receive_stream_config.cc | 10 ++++++++++ .../events/rtc_event_audio_receive_stream_config.h | 12 +++++++++++- .../events/rtc_event_audio_send_stream_config.cc | 10 ++++++++++ .../events/rtc_event_audio_send_stream_config.h | 12 +++++++++++- .../events/rtc_event_bwe_update_delay_based.cc | 9 +++++++++ .../events/rtc_event_bwe_update_delay_based.h | 9 ++++++++- .../events/rtc_event_bwe_update_loss_based.cc | 9 +++++++++ .../events/rtc_event_bwe_update_loss_based.h | 9 ++++++++- .../events/rtc_event_probe_cluster_created.cc | 9 +++++++++ .../events/rtc_event_probe_cluster_created.h | 9 +++++++++ .../events/rtc_event_probe_result_failure.cc | 5 +++++ .../events/rtc_event_probe_result_failure.h | 10 ++++++++++ .../events/rtc_event_probe_result_success.cc | 3 +++ .../events/rtc_event_probe_result_success.h | 4 ++++ .../events/rtc_event_rtcp_packet_incoming.cc | 6 ++++++ .../events/rtc_event_rtcp_packet_incoming.h | 7 ++++++- .../events/rtc_event_rtcp_packet_outgoing.cc | 6 ++++++ .../events/rtc_event_rtcp_packet_outgoing.h | 7 ++++++- .../events/rtc_event_rtp_packet_incoming.cc | 10 ++++++++++ .../events/rtc_event_rtp_packet_incoming.h | 9 ++++++++- .../events/rtc_event_rtp_packet_outgoing.cc | 11 +++++++++++ .../events/rtc_event_rtp_packet_outgoing.h | 11 ++++++++++- .../events/rtc_event_video_receive_stream_config.cc | 8 ++++++++ .../events/rtc_event_video_receive_stream_config.h | 9 ++++++++- .../events/rtc_event_video_send_stream_config.cc | 8 ++++++++ .../events/rtc_event_video_send_stream_config.h | 9 ++++++++- logging/rtc_event_log/rtc_event_log.h | 8 +++----- 33 files changed, 248 insertions(+), 16 deletions(-) diff --git a/logging/BUILD.gn b/logging/BUILD.gn index 34737d2b44..e56111a59a 100644 --- a/logging/BUILD.gn +++ b/logging/BUILD.gn @@ -69,6 +69,9 @@ rtc_source_set("rtc_event_log_api") { "../api:array_view", "../api:libjingle_peerconnection_api", "../call:video_stream_api", + "../modules/audio_coding:audio_network_adaptor_config", + "../modules/remote_bitrate_estimator:remote_bitrate_estimator", + "../modules/rtp_rtcp:rtp_rtcp_format", "../rtc_base:rtc_base_approved", ] } diff --git a/logging/rtc_event_log/events/rtc_event.h b/logging/rtc_event_log/events/rtc_event.h index 19c44d0ba6..2fe77b5c0b 100644 --- a/logging/rtc_event_log/events/rtc_event.h +++ b/logging/rtc_event_log/events/rtc_event.h @@ -11,6 +11,10 @@ #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_H_ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_H_ +#include + +#include "rtc_base/timeutils.h" + namespace webrtc { // This class allows us to store unencoded RTC events. Subclasses of this class @@ -45,11 +49,14 @@ class RtcEvent { VideoSendStreamConfig }; + RtcEvent() : timestamp_us_(rtc::TimeMicros()) {} virtual ~RtcEvent() = default; virtual Type GetType() const = 0; virtual bool IsConfigEvent() const = 0; + + const int64_t timestamp_us_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc index 2ae110c42e..5ab7da6796 100644 --- a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc +++ b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc @@ -10,8 +10,18 @@ #include "logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h" +#include + +#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" + namespace webrtc { +RtcEventAudioNetworkAdaptation::RtcEventAudioNetworkAdaptation( + std::unique_ptr config) + : config_(std::move(config)) {} + +RtcEventAudioNetworkAdaptation::~RtcEventAudioNetworkAdaptation() = default; + RtcEvent::Type RtcEventAudioNetworkAdaptation::GetType() const { return RtcEvent::Type::AudioNetworkAdaptation; } diff --git a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h index 3b407371ad..9b39d24bfa 100644 --- a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h +++ b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h @@ -11,17 +11,25 @@ #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_NETWORK_ADAPTATION_H_ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_NETWORK_ADAPTATION_H_ +#include + #include "logging/rtc_event_log/events/rtc_event.h" namespace webrtc { +struct AudioEncoderRuntimeConfig; + class RtcEventAudioNetworkAdaptation final : public RtcEvent { public: - ~RtcEventAudioNetworkAdaptation() override = default; + explicit RtcEventAudioNetworkAdaptation( + std::unique_ptr config); + ~RtcEventAudioNetworkAdaptation() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr config_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_audio_playout.cc b/logging/rtc_event_log/events/rtc_event_audio_playout.cc index 354c0b8cd0..8378993ace 100644 --- a/logging/rtc_event_log/events/rtc_event_audio_playout.cc +++ b/logging/rtc_event_log/events/rtc_event_audio_playout.cc @@ -12,6 +12,8 @@ namespace webrtc { +RtcEventAudioPlayout::RtcEventAudioPlayout(uint32_t ssrc) : ssrc_(ssrc) {} + RtcEvent::Type RtcEventAudioPlayout::GetType() const { return RtcEvent::Type::AudioPlayout; } diff --git a/logging/rtc_event_log/events/rtc_event_audio_playout.h b/logging/rtc_event_log/events/rtc_event_audio_playout.h index 19d3bde406..c74148109b 100644 --- a/logging/rtc_event_log/events/rtc_event_audio_playout.h +++ b/logging/rtc_event_log/events/rtc_event_audio_playout.h @@ -17,11 +17,14 @@ namespace webrtc { class RtcEventAudioPlayout final : public RtcEvent { public: + explicit RtcEventAudioPlayout(uint32_t ssrc); ~RtcEventAudioPlayout() override = default; Type GetType() const override; bool IsConfigEvent() const override; + + const uint32_t ssrc_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc index d9f8e745e7..6bc9dc6b30 100644 --- a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc +++ b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc @@ -10,8 +10,18 @@ #include "logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h" +#include + +#include "logging/rtc_event_log/rtc_stream_config.h" + namespace webrtc { +RtcEventAudioReceiveStreamConfig::RtcEventAudioReceiveStreamConfig( + std::unique_ptr config) + : config_(std::move(config)) {} + +RtcEventAudioReceiveStreamConfig::~RtcEventAudioReceiveStreamConfig() = default; + RtcEvent::Type RtcEventAudioReceiveStreamConfig::GetType() const { return RtcEvent::Type::AudioReceiveStreamConfig; } diff --git a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h index bc30424de8..ae79bbf44a 100644 --- a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h +++ b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h @@ -11,17 +11,27 @@ #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_RECEIVE_STREAM_CONFIG_H_ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_RECEIVE_STREAM_CONFIG_H_ +#include + #include "logging/rtc_event_log/events/rtc_event.h" namespace webrtc { +namespace rtclog { +struct StreamConfig; +} // namespace rtclog + class RtcEventAudioReceiveStreamConfig final : public RtcEvent { public: - ~RtcEventAudioReceiveStreamConfig() override = default; + explicit RtcEventAudioReceiveStreamConfig( + std::unique_ptr config); + ~RtcEventAudioReceiveStreamConfig() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr config_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc index 0ad07ced1b..de88bcad5c 100644 --- a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc +++ b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc @@ -10,8 +10,18 @@ #include "logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h" +#include + +#include "logging/rtc_event_log/rtc_stream_config.h" + namespace webrtc { +RtcEventAudioSendStreamConfig::RtcEventAudioSendStreamConfig( + std::unique_ptr config) + : config_(std::move(config)) {} + +RtcEventAudioSendStreamConfig::~RtcEventAudioSendStreamConfig() = default; + RtcEvent::Type RtcEventAudioSendStreamConfig::GetType() const { return RtcEvent::Type::AudioSendStreamConfig; } diff --git a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h index 2fad7b3de1..44611f1e4b 100644 --- a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h +++ b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h @@ -11,17 +11,27 @@ #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_SEND_STREAM_CONFIG_H_ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_AUDIO_SEND_STREAM_CONFIG_H_ +#include + #include "logging/rtc_event_log/events/rtc_event.h" namespace webrtc { +namespace rtclog { +struct StreamConfig; +} // namespace rtclog + class RtcEventAudioSendStreamConfig final : public RtcEvent { public: - ~RtcEventAudioSendStreamConfig() override = default; + explicit RtcEventAudioSendStreamConfig( + std::unique_ptr config); + ~RtcEventAudioSendStreamConfig() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr config_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc index 681dd7d022..caf0f77c44 100644 --- a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc +++ b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc @@ -10,8 +10,17 @@ #include "logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h" +#include "modules/remote_bitrate_estimator/include/bwe_defines.h" + namespace webrtc { +RtcEventBweUpdateDelayBased::RtcEventBweUpdateDelayBased( + int32_t bitrate_bps, + BandwidthUsage detector_state) + : bitrate_bps_(bitrate_bps), detector_state_(detector_state) {} + +RtcEventBweUpdateDelayBased::~RtcEventBweUpdateDelayBased() = default; + RtcEvent::Type RtcEventBweUpdateDelayBased::GetType() const { return RtcEvent::Type::BweUpdateDelayBased; } diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h index 78750bef3c..b59b78cdcd 100644 --- a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h +++ b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h @@ -15,13 +15,20 @@ namespace webrtc { +enum class BandwidthUsage; + class RtcEventBweUpdateDelayBased final : public RtcEvent { public: - ~RtcEventBweUpdateDelayBased() override = default; + RtcEventBweUpdateDelayBased(int32_t bitrate_bps, + BandwidthUsage detector_state); + ~RtcEventBweUpdateDelayBased() override; Type GetType() const override; bool IsConfigEvent() const override; + + const int32_t bitrate_bps_; + const BandwidthUsage detector_state_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc index e9cba1e67e..5d11200e73 100644 --- a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc +++ b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc @@ -12,6 +12,15 @@ namespace webrtc { +RtcEventBweUpdateLossBased::RtcEventBweUpdateLossBased(int32_t bitrate_bps, + uint8_t fraction_loss, + int32_t total_packets) + : bitrate_bps_(bitrate_bps), + fraction_loss_(fraction_loss), + total_packets_(total_packets) {} + +RtcEventBweUpdateLossBased::~RtcEventBweUpdateLossBased() = default; + RtcEvent::Type RtcEventBweUpdateLossBased::GetType() const { return RtcEvent::Type::BweUpdateLossBased; } diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h index cbc8624fa5..474b9de040 100644 --- a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h +++ b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h @@ -17,11 +17,18 @@ namespace webrtc { class RtcEventBweUpdateLossBased final : public RtcEvent { public: - ~RtcEventBweUpdateLossBased() override = default; + RtcEventBweUpdateLossBased(int32_t bitrate_bps_, + uint8_t fraction_loss_, + int32_t total_packets_); + ~RtcEventBweUpdateLossBased() override; Type GetType() const override; bool IsConfigEvent() const override; + + const int32_t bitrate_bps_; + const uint8_t fraction_loss_; + const int32_t total_packets_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc index 314f816a17..d5dad74122 100644 --- a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc +++ b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc @@ -12,6 +12,15 @@ namespace webrtc { +RtcEventProbeClusterCreated::RtcEventProbeClusterCreated(int id, + int bitrate_bps, + int min_probes, + int min_bytes) + : id_(id), + bitrate_bps_(bitrate_bps), + min_probes_(min_probes), + min_bytes_(min_bytes) {} + RtcEvent::Type RtcEventProbeClusterCreated::GetType() const { return RtcEvent::Type::ProbeClusterCreated; } diff --git a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h index 8893406e1e..938ba4f32e 100644 --- a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h +++ b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h @@ -17,11 +17,20 @@ namespace webrtc { class RtcEventProbeClusterCreated final : public RtcEvent { public: + RtcEventProbeClusterCreated(int id, + int bitrate_bps, + int min_probes, + int min_bytes); ~RtcEventProbeClusterCreated() override = default; Type GetType() const override; bool IsConfigEvent() const override; + + const int id_; + const int bitrate_bps_; + const int min_probes_; + const int min_bytes_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc b/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc index d2f6cc45c0..1242ab825a 100644 --- a/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc +++ b/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc @@ -12,6 +12,11 @@ namespace webrtc { +RtcEventProbeResultFailure::RtcEventProbeResultFailure( + int id, + ProbeFailureReason failure_reason) + : id_(id), failure_reason_(failure_reason) {} + RtcEvent::Type RtcEventProbeResultFailure::GetType() const { return RtcEvent::Type::ProbeResultFailure; } diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_failure.h b/logging/rtc_event_log/events/rtc_event_probe_result_failure.h index 6817a3b5c2..76d8643799 100644 --- a/logging/rtc_event_log/events/rtc_event_probe_result_failure.h +++ b/logging/rtc_event_log/events/rtc_event_probe_result_failure.h @@ -15,13 +15,23 @@ namespace webrtc { +enum ProbeFailureReason { + kInvalidSendReceiveInterval, + kInvalidSendReceiveRatio, + kTimeout +}; + class RtcEventProbeResultFailure final : public RtcEvent { public: + RtcEventProbeResultFailure(int id, ProbeFailureReason failure_reason); ~RtcEventProbeResultFailure() override = default; Type GetType() const override; bool IsConfigEvent() const override; + + const int id_; + const ProbeFailureReason failure_reason_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_success.cc b/logging/rtc_event_log/events/rtc_event_probe_result_success.cc index bf9fba977e..f7b06fe28e 100644 --- a/logging/rtc_event_log/events/rtc_event_probe_result_success.cc +++ b/logging/rtc_event_log/events/rtc_event_probe_result_success.cc @@ -12,6 +12,9 @@ namespace webrtc { +RtcEventProbeResultSuccess::RtcEventProbeResultSuccess(int id, int bitrate_bps) + : id_(id), bitrate_bps_(bitrate_bps) {} + RtcEvent::Type RtcEventProbeResultSuccess::GetType() const { return RtcEvent::Type::ProbeResultSuccess; } diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_success.h b/logging/rtc_event_log/events/rtc_event_probe_result_success.h index cdf9493d22..f8f02164d6 100644 --- a/logging/rtc_event_log/events/rtc_event_probe_result_success.h +++ b/logging/rtc_event_log/events/rtc_event_probe_result_success.h @@ -17,11 +17,15 @@ namespace webrtc { class RtcEventProbeResultSuccess final : public RtcEvent { public: + RtcEventProbeResultSuccess(int id, int bitrate_bps); ~RtcEventProbeResultSuccess() override = default; Type GetType() const override; bool IsConfigEvent() const override; + + const int id_; + const int bitrate_bps_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc index df84b17381..1f0765e40c 100644 --- a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc +++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc @@ -12,6 +12,12 @@ namespace webrtc { +RtcEventRtcpPacketIncoming::RtcEventRtcpPacketIncoming( + rtc::ArrayView packet) + : packet_(packet.data(), packet.size()) {} + +RtcEventRtcpPacketIncoming::~RtcEventRtcpPacketIncoming() = default; + RtcEvent::Type RtcEventRtcpPacketIncoming::GetType() const { return RtcEvent::Type::RtcpPacketIncoming; } diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h index c9402d75f1..f7af462c10 100644 --- a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h +++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h @@ -11,17 +11,22 @@ #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTCP_PACKET_INCOMING_H_ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTCP_PACKET_INCOMING_H_ +#include "api/array_view.h" #include "logging/rtc_event_log/events/rtc_event.h" +#include "rtc_base/buffer.h" namespace webrtc { class RtcEventRtcpPacketIncoming final : public RtcEvent { public: - ~RtcEventRtcpPacketIncoming() override = default; + explicit RtcEventRtcpPacketIncoming(rtc::ArrayView packet); + ~RtcEventRtcpPacketIncoming() override; Type GetType() const override; bool IsConfigEvent() const override; + + rtc::Buffer packet_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc index a74671a559..b2dfaf0867 100644 --- a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc +++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc @@ -12,6 +12,12 @@ namespace webrtc { +RtcEventRtcpPacketOutgoing::RtcEventRtcpPacketOutgoing( + rtc::ArrayView packet) + : packet_(packet.data(), packet.size()) {} + +RtcEventRtcpPacketOutgoing::~RtcEventRtcpPacketOutgoing() = default; + RtcEvent::Type RtcEventRtcpPacketOutgoing::GetType() const { return RtcEvent::Type::RtcpPacketOutgoing; } diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h index 41c726fb6d..2c38ae0878 100644 --- a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h +++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h @@ -11,17 +11,22 @@ #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTCP_PACKET_OUTGOING_H_ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTCP_PACKET_OUTGOING_H_ +#include "api/array_view.h" #include "logging/rtc_event_log/events/rtc_event.h" +#include "rtc_base/buffer.h" namespace webrtc { class RtcEventRtcpPacketOutgoing final : public RtcEvent { public: - ~RtcEventRtcpPacketOutgoing() override = default; + explicit RtcEventRtcpPacketOutgoing(rtc::ArrayView packet); + ~RtcEventRtcpPacketOutgoing() override; Type GetType() const override; bool IsConfigEvent() const override; + + rtc::Buffer packet_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc index 324bb15c7a..e0dcec5e79 100644 --- a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc +++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc @@ -10,8 +10,18 @@ #include "logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h" +#include "modules/rtp_rtcp/source/rtp_packet_received.h" + namespace webrtc { +RtcEventRtpPacketIncoming::RtcEventRtpPacketIncoming( + const RtpPacketReceived& packet) + : packet_length_(packet.size()) { + header_.CopyHeaderFrom(packet); +} + +RtcEventRtpPacketIncoming::~RtcEventRtpPacketIncoming() = default; + RtcEvent::Type RtcEventRtpPacketIncoming::GetType() const { return RtcEvent::Type::RtpPacketIncoming; } diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h index 02bc7e80fc..4aaf86f289 100644 --- a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h +++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h @@ -12,16 +12,23 @@ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTP_PACKET_INCOMING_H_ #include "logging/rtc_event_log/events/rtc_event.h" +#include "modules/rtp_rtcp/source/rtp_packet.h" namespace webrtc { +class RtpPacketReceived; + class RtcEventRtpPacketIncoming final : public RtcEvent { public: - ~RtcEventRtpPacketIncoming() override = default; + explicit RtcEventRtpPacketIncoming(const RtpPacketReceived& packet); + ~RtcEventRtpPacketIncoming() override; Type GetType() const override; bool IsConfigEvent() const override; + + RtpPacket header_; // Only the packet's header will be stored here. + const size_t packet_length_; // Length before stripping away all but header. }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc index 4b3613d208..207f76a511 100644 --- a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc +++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc @@ -10,8 +10,19 @@ #include "logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h" +#include "modules/rtp_rtcp/source/rtp_packet_to_send.h" + namespace webrtc { +RtcEventRtpPacketOutgoing::RtcEventRtpPacketOutgoing( + const RtpPacketToSend& packet, + int probe_cluster_id) + : packet_length_(packet.size()), probe_cluster_id_(probe_cluster_id) { + header_.CopyHeaderFrom(packet); +} + +RtcEventRtpPacketOutgoing::~RtcEventRtpPacketOutgoing() = default; + RtcEvent::Type RtcEventRtpPacketOutgoing::GetType() const { return RtcEvent::Type::RtpPacketOutgoing; } diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h index 0d771561e3..898cdce40e 100644 --- a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h +++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h @@ -12,16 +12,25 @@ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_RTP_PACKET_OUTGOING_H_ #include "logging/rtc_event_log/events/rtc_event.h" +#include "modules/rtp_rtcp/source/rtp_packet.h" namespace webrtc { +class RtpPacketToSend; + class RtcEventRtpPacketOutgoing final : public RtcEvent { public: - ~RtcEventRtpPacketOutgoing() override = default; + RtcEventRtpPacketOutgoing(const RtpPacketToSend& packet, + int probe_cluster_id); + ~RtcEventRtpPacketOutgoing() override; Type GetType() const override; bool IsConfigEvent() const override; + + RtpPacket header_; // Only the packet's header will be stored here. + const size_t packet_length_; // Length before stripping away all but header. + const int probe_cluster_id_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc index 1e3fb6774b..514974b2ec 100644 --- a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc +++ b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc @@ -10,8 +10,16 @@ #include "logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h" +#include + namespace webrtc { +RtcEventVideoReceiveStreamConfig::RtcEventVideoReceiveStreamConfig( + std::unique_ptr config) + : config_(std::move(config)) {} + +RtcEventVideoReceiveStreamConfig::~RtcEventVideoReceiveStreamConfig() = default; + RtcEvent::Type RtcEventVideoReceiveStreamConfig::GetType() const { return Type::VideoReceiveStreamConfig; } diff --git a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h index 1506e8be18..1d470e50ce 100644 --- a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h +++ b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h @@ -11,17 +11,24 @@ #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_VIDEO_RECEIVE_STREAM_CONFIG_H_ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_VIDEO_RECEIVE_STREAM_CONFIG_H_ +#include + #include "logging/rtc_event_log/events/rtc_event.h" +#include "logging/rtc_event_log/rtc_stream_config.h" namespace webrtc { class RtcEventVideoReceiveStreamConfig final : public RtcEvent { public: - ~RtcEventVideoReceiveStreamConfig() override = default; + explicit RtcEventVideoReceiveStreamConfig( + std::unique_ptr config); + ~RtcEventVideoReceiveStreamConfig() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr config_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc index f54d825614..9bb2b5e38e 100644 --- a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc +++ b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc @@ -10,8 +10,16 @@ #include "logging/rtc_event_log/events/rtc_event_video_send_stream_config.h" +#include + namespace webrtc { +RtcEventVideoSendStreamConfig::RtcEventVideoSendStreamConfig( + std::unique_ptr config) + : config_(std::move(config)) {} + +RtcEventVideoSendStreamConfig::~RtcEventVideoSendStreamConfig() = default; + RtcEvent::Type RtcEventVideoSendStreamConfig::GetType() const { return RtcEvent::Type::VideoSendStreamConfig; } diff --git a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h index 97e2497c1b..97bdba9613 100644 --- a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h +++ b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h @@ -11,17 +11,24 @@ #ifndef LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_VIDEO_SEND_STREAM_CONFIG_H_ #define LOGGING_RTC_EVENT_LOG_EVENTS_RTC_EVENT_VIDEO_SEND_STREAM_CONFIG_H_ +#include + #include "logging/rtc_event_log/events/rtc_event.h" +#include "logging/rtc_event_log/rtc_stream_config.h" namespace webrtc { class RtcEventVideoSendStreamConfig final : public RtcEvent { public: - ~RtcEventVideoSendStreamConfig() override = default; + explicit RtcEventVideoSendStreamConfig( + std::unique_ptr config); + ~RtcEventVideoSendStreamConfig() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr config_; }; } // namespace webrtc diff --git a/logging/rtc_event_log/rtc_event_log.h b/logging/rtc_event_log/rtc_event_log.h index 31caa447cd..076af8d7dc 100644 --- a/logging/rtc_event_log/rtc_event_log.h +++ b/logging/rtc_event_log/rtc_event_log.h @@ -19,6 +19,9 @@ // TODO(eladalon): Get rid of this later in the CL-stack. #include "api/rtpparameters.h" #include "common_types.h" // NOLINT(build/include) +// TODO(eladalon): This is here because of ProbeFailureReason; remove this +// dependency along with the deprecated LogProbeResultFailure(). +#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h" #include "rtc_base/platform_file.h" namespace webrtc { @@ -38,11 +41,6 @@ enum class MediaType; enum class BandwidthUsage; enum PacketDirection { kIncomingPacket = 0, kOutgoingPacket }; -enum ProbeFailureReason { - kInvalidSendReceiveInterval, - kInvalidSendReceiveRatio, - kTimeout -}; class RtcEventLog { public: