diff options
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 <typedefs.h> + +#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 <utility> + +#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h" + namespace webrtc { +RtcEventAudioNetworkAdaptation::RtcEventAudioNetworkAdaptation( + std::unique_ptr<AudioEncoderRuntimeConfig> 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 <memory> + #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<AudioEncoderRuntimeConfig> config); + ~RtcEventAudioNetworkAdaptation() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr<const AudioEncoderRuntimeConfig> 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 <utility> + +#include "logging/rtc_event_log/rtc_stream_config.h" + namespace webrtc { +RtcEventAudioReceiveStreamConfig::RtcEventAudioReceiveStreamConfig( + std::unique_ptr<rtclog::StreamConfig> 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 <memory> + #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<rtclog::StreamConfig> config); + ~RtcEventAudioReceiveStreamConfig() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr<const rtclog::StreamConfig> 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 <utility> + +#include "logging/rtc_event_log/rtc_stream_config.h" + namespace webrtc { +RtcEventAudioSendStreamConfig::RtcEventAudioSendStreamConfig( + std::unique_ptr<rtclog::StreamConfig> 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 <memory> + #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<rtclog::StreamConfig> config); + ~RtcEventAudioSendStreamConfig() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr<const rtclog::StreamConfig> 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<const uint8_t> 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<const uint8_t> 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<const uint8_t> 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<const uint8_t> 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 <utility> + namespace webrtc { +RtcEventVideoReceiveStreamConfig::RtcEventVideoReceiveStreamConfig( + std::unique_ptr<rtclog::StreamConfig> 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 <memory> + #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<rtclog::StreamConfig> config); + ~RtcEventVideoReceiveStreamConfig() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr<const rtclog::StreamConfig> 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 <utility> + namespace webrtc { +RtcEventVideoSendStreamConfig::RtcEventVideoSendStreamConfig( + std::unique_ptr<rtclog::StreamConfig> 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 <memory> + #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<rtclog::StreamConfig> config); + ~RtcEventVideoSendStreamConfig() override; Type GetType() const override; bool IsConfigEvent() const override; + + const std::unique_ptr<const rtclog::StreamConfig> 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: |