Moves logged event structs to separate header.
Bug: webrtc:10170 Change-Id: I2f6f5b9688f5064fc476063e4e64ac3f9a335b3c Reviewed-on: https://webrtc-review.googlesource.com/c/116061 Reviewed-by: Björn Terelius <terelius@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26123}
This commit is contained in:
parent
6704c91061
commit
3f2b9aad4a
@ -290,6 +290,7 @@ if (rtc_enable_protobuf) {
|
||||
rtc_static_library("rtc_event_log_parser") {
|
||||
visibility = [ "*" ]
|
||||
sources = [
|
||||
"rtc_event_log/logged_events.h",
|
||||
"rtc_event_log/rtc_event_log_parser_new.cc",
|
||||
"rtc_event_log/rtc_event_log_parser_new.h",
|
||||
"rtc_event_log/rtc_event_processor.h",
|
||||
|
||||
441
logging/rtc_event_log/logged_events.h
Normal file
441
logging/rtc_event_log/logged_events.h
Normal file
@ -0,0 +1,441 @@
|
||||
/*
|
||||
* Copyright 2019 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 LOGGING_RTC_EVENT_LOG_LOGGED_EVENTS_H_
|
||||
#define LOGGING_RTC_EVENT_LOG_LOGGED_EVENTS_H_
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "api/rtp_headers.h"
|
||||
#include "logging/rtc_event_log/events/rtc_event_dtls_transport_state.h"
|
||||
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h"
|
||||
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h"
|
||||
#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
|
||||
#include "logging/rtc_event_log/rtc_stream_config.h"
|
||||
#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
|
||||
#include "modules/remote_bitrate_estimator/include/bwe_defines.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/nack.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/remb.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
// The different event types are deliberately POD. Analysis of large logs is
|
||||
// already resource intensive. The code simplifications that would be possible
|
||||
// possible by having a base class (containing e.g. the log time) are not
|
||||
// considered to outweigh the added memory and runtime overhead incurred by
|
||||
// adding a vptr.
|
||||
struct LoggedAlrStateEvent {
|
||||
LoggedAlrStateEvent() = default;
|
||||
LoggedAlrStateEvent(int64_t timestamp_us, bool in_alr)
|
||||
: timestamp_us(timestamp_us), in_alr(in_alr) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
bool in_alr;
|
||||
};
|
||||
|
||||
struct LoggedAudioPlayoutEvent {
|
||||
LoggedAudioPlayoutEvent() = default;
|
||||
LoggedAudioPlayoutEvent(int64_t timestamp_us, uint32_t ssrc)
|
||||
: timestamp_us(timestamp_us), ssrc(ssrc) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
uint32_t ssrc;
|
||||
};
|
||||
|
||||
struct LoggedAudioNetworkAdaptationEvent {
|
||||
LoggedAudioNetworkAdaptationEvent() = default;
|
||||
LoggedAudioNetworkAdaptationEvent(int64_t timestamp_us,
|
||||
const AudioEncoderRuntimeConfig& config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
AudioEncoderRuntimeConfig config;
|
||||
};
|
||||
|
||||
struct LoggedBweDelayBasedUpdate {
|
||||
LoggedBweDelayBasedUpdate() = default;
|
||||
LoggedBweDelayBasedUpdate(int64_t timestamp_us,
|
||||
int32_t bitrate_bps,
|
||||
BandwidthUsage detector_state)
|
||||
: timestamp_us(timestamp_us),
|
||||
bitrate_bps(bitrate_bps),
|
||||
detector_state(detector_state) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t bitrate_bps;
|
||||
BandwidthUsage detector_state;
|
||||
};
|
||||
|
||||
struct LoggedBweLossBasedUpdate {
|
||||
LoggedBweLossBasedUpdate() = default;
|
||||
LoggedBweLossBasedUpdate(int64_t timestamp_us,
|
||||
int32_t bitrate_bps,
|
||||
uint8_t fraction_lost,
|
||||
int32_t expected_packets)
|
||||
: timestamp_us(timestamp_us),
|
||||
bitrate_bps(bitrate_bps),
|
||||
fraction_lost(fraction_lost),
|
||||
expected_packets(expected_packets) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t bitrate_bps;
|
||||
uint8_t fraction_lost;
|
||||
int32_t expected_packets;
|
||||
};
|
||||
|
||||
struct LoggedDtlsTransportState {
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
DtlsTransportState dtls_transport_state;
|
||||
};
|
||||
|
||||
struct LoggedDtlsWritableState {
|
||||
LoggedDtlsWritableState() = default;
|
||||
explicit LoggedDtlsWritableState(bool writable) : writable(writable) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
bool writable;
|
||||
};
|
||||
|
||||
struct LoggedBweProbeClusterCreatedEvent {
|
||||
LoggedBweProbeClusterCreatedEvent() = default;
|
||||
LoggedBweProbeClusterCreatedEvent(int64_t timestamp_us,
|
||||
int32_t id,
|
||||
int32_t bitrate_bps,
|
||||
uint32_t min_packets,
|
||||
uint32_t min_bytes)
|
||||
: timestamp_us(timestamp_us),
|
||||
id(id),
|
||||
bitrate_bps(bitrate_bps),
|
||||
min_packets(min_packets),
|
||||
min_bytes(min_bytes) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t id;
|
||||
int32_t bitrate_bps;
|
||||
uint32_t min_packets;
|
||||
uint32_t min_bytes;
|
||||
};
|
||||
|
||||
struct LoggedBweProbeSuccessEvent {
|
||||
LoggedBweProbeSuccessEvent() = default;
|
||||
LoggedBweProbeSuccessEvent(int64_t timestamp_us,
|
||||
int32_t id,
|
||||
int32_t bitrate_bps)
|
||||
: timestamp_us(timestamp_us), id(id), bitrate_bps(bitrate_bps) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t id;
|
||||
int32_t bitrate_bps;
|
||||
};
|
||||
|
||||
struct LoggedBweProbeFailureEvent {
|
||||
LoggedBweProbeFailureEvent() = default;
|
||||
LoggedBweProbeFailureEvent(int64_t timestamp_us,
|
||||
int32_t id,
|
||||
ProbeFailureReason failure_reason)
|
||||
: timestamp_us(timestamp_us), id(id), failure_reason(failure_reason) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t id;
|
||||
ProbeFailureReason failure_reason;
|
||||
};
|
||||
|
||||
struct LoggedIceCandidatePairConfig {
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
IceCandidatePairConfigType type;
|
||||
uint32_t candidate_pair_id;
|
||||
IceCandidateType local_candidate_type;
|
||||
IceCandidatePairProtocol local_relay_protocol;
|
||||
IceCandidateNetworkType local_network_type;
|
||||
IceCandidatePairAddressFamily local_address_family;
|
||||
IceCandidateType remote_candidate_type;
|
||||
IceCandidatePairAddressFamily remote_address_family;
|
||||
IceCandidatePairProtocol candidate_pair_protocol;
|
||||
};
|
||||
|
||||
struct LoggedIceCandidatePairEvent {
|
||||
LoggedIceCandidatePairEvent() = default;
|
||||
LoggedIceCandidatePairEvent(int64_t timestamp_us,
|
||||
IceCandidatePairEventType type,
|
||||
uint32_t candidate_pair_id,
|
||||
uint32_t transaction_id)
|
||||
: timestamp_us(timestamp_us),
|
||||
type(type),
|
||||
candidate_pair_id(candidate_pair_id),
|
||||
transaction_id(transaction_id) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
IceCandidatePairEventType type;
|
||||
uint32_t candidate_pair_id;
|
||||
uint32_t transaction_id;
|
||||
};
|
||||
|
||||
struct LoggedRtpPacket {
|
||||
LoggedRtpPacket(uint64_t timestamp_us,
|
||||
RTPHeader header,
|
||||
size_t header_length,
|
||||
size_t total_length)
|
||||
: timestamp_us(timestamp_us),
|
||||
header(header),
|
||||
header_length(header_length),
|
||||
total_length(total_length) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
// TODO(terelius): This allocates space for 15 CSRCs even if none are used.
|
||||
RTPHeader header;
|
||||
size_t header_length;
|
||||
size_t total_length;
|
||||
};
|
||||
|
||||
struct LoggedRtpPacketIncoming {
|
||||
LoggedRtpPacketIncoming(uint64_t timestamp_us,
|
||||
RTPHeader header,
|
||||
size_t header_length,
|
||||
size_t total_length)
|
||||
: rtp(timestamp_us, header, header_length, total_length) {}
|
||||
int64_t log_time_us() const { return rtp.timestamp_us; }
|
||||
int64_t log_time_ms() const { return rtp.timestamp_us / 1000; }
|
||||
|
||||
LoggedRtpPacket rtp;
|
||||
};
|
||||
|
||||
struct LoggedRtpPacketOutgoing {
|
||||
LoggedRtpPacketOutgoing(uint64_t timestamp_us,
|
||||
RTPHeader header,
|
||||
size_t header_length,
|
||||
size_t total_length)
|
||||
: rtp(timestamp_us, header, header_length, total_length) {}
|
||||
int64_t log_time_us() const { return rtp.timestamp_us; }
|
||||
int64_t log_time_ms() const { return rtp.timestamp_us / 1000; }
|
||||
|
||||
LoggedRtpPacket rtp;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacket {
|
||||
LoggedRtcpPacket(uint64_t timestamp_us,
|
||||
const uint8_t* packet,
|
||||
size_t total_length);
|
||||
LoggedRtcpPacket(uint64_t timestamp_us, const std::string& packet);
|
||||
LoggedRtcpPacket(const LoggedRtcpPacket&);
|
||||
~LoggedRtcpPacket();
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
std::vector<uint8_t> raw_data;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketIncoming {
|
||||
LoggedRtcpPacketIncoming(uint64_t timestamp_us,
|
||||
const uint8_t* packet,
|
||||
size_t total_length)
|
||||
: rtcp(timestamp_us, packet, total_length) {}
|
||||
LoggedRtcpPacketIncoming(uint64_t timestamp_us, const std::string& packet)
|
||||
: rtcp(timestamp_us, packet) {}
|
||||
|
||||
int64_t log_time_us() const { return rtcp.timestamp_us; }
|
||||
int64_t log_time_ms() const { return rtcp.timestamp_us / 1000; }
|
||||
|
||||
LoggedRtcpPacket rtcp;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketOutgoing {
|
||||
LoggedRtcpPacketOutgoing(uint64_t timestamp_us,
|
||||
const uint8_t* packet,
|
||||
size_t total_length)
|
||||
: rtcp(timestamp_us, packet, total_length) {}
|
||||
LoggedRtcpPacketOutgoing(uint64_t timestamp_us, const std::string& packet)
|
||||
: rtcp(timestamp_us, packet) {}
|
||||
|
||||
int64_t log_time_us() const { return rtcp.timestamp_us; }
|
||||
int64_t log_time_ms() const { return rtcp.timestamp_us / 1000; }
|
||||
|
||||
LoggedRtcpPacket rtcp;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketReceiverReport {
|
||||
LoggedRtcpPacketReceiverReport() = default;
|
||||
LoggedRtcpPacketReceiverReport(int64_t timestamp_us,
|
||||
const rtcp::ReceiverReport& rr)
|
||||
: timestamp_us(timestamp_us), rr(rr) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::ReceiverReport rr;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketSenderReport {
|
||||
LoggedRtcpPacketSenderReport() = default;
|
||||
LoggedRtcpPacketSenderReport(int64_t timestamp_us,
|
||||
const rtcp::SenderReport& sr)
|
||||
: timestamp_us(timestamp_us), sr(sr) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::SenderReport sr;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketRemb {
|
||||
LoggedRtcpPacketRemb() = default;
|
||||
LoggedRtcpPacketRemb(int64_t timestamp_us, const rtcp::Remb& remb)
|
||||
: timestamp_us(timestamp_us), remb(remb) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::Remb remb;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketNack {
|
||||
LoggedRtcpPacketNack() = default;
|
||||
LoggedRtcpPacketNack(int64_t timestamp_us, const rtcp::Nack& nack)
|
||||
: timestamp_us(timestamp_us), nack(nack) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::Nack nack;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketTransportFeedback {
|
||||
LoggedRtcpPacketTransportFeedback() = default;
|
||||
LoggedRtcpPacketTransportFeedback(
|
||||
int64_t timestamp_us,
|
||||
const rtcp::TransportFeedback& transport_feedback)
|
||||
: timestamp_us(timestamp_us), transport_feedback(transport_feedback) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::TransportFeedback transport_feedback;
|
||||
};
|
||||
|
||||
struct LoggedStartEvent {
|
||||
explicit LoggedStartEvent(int64_t timestamp_us)
|
||||
: LoggedStartEvent(timestamp_us, timestamp_us / 1000) {}
|
||||
|
||||
LoggedStartEvent(int64_t timestamp_us, int64_t utc_start_time_ms)
|
||||
: timestamp_us(timestamp_us), utc_start_time_ms(utc_start_time_ms) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int64_t utc_start_time_ms;
|
||||
};
|
||||
|
||||
struct LoggedStopEvent {
|
||||
explicit LoggedStopEvent(int64_t timestamp_us) : timestamp_us(timestamp_us) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
};
|
||||
|
||||
struct LoggedAudioRecvConfig {
|
||||
LoggedAudioRecvConfig() = default;
|
||||
LoggedAudioRecvConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtclog::StreamConfig config;
|
||||
};
|
||||
|
||||
struct LoggedAudioSendConfig {
|
||||
LoggedAudioSendConfig() = default;
|
||||
LoggedAudioSendConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtclog::StreamConfig config;
|
||||
};
|
||||
|
||||
struct LoggedVideoRecvConfig {
|
||||
LoggedVideoRecvConfig() = default;
|
||||
LoggedVideoRecvConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtclog::StreamConfig config;
|
||||
};
|
||||
|
||||
struct LoggedVideoSendConfig {
|
||||
LoggedVideoSendConfig() = default;
|
||||
LoggedVideoSendConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtclog::StreamConfig config;
|
||||
};
|
||||
} // namespace webrtc
|
||||
#endif // LOGGING_RTC_EVENT_LOG_LOGGED_EVENTS_H_
|
||||
@ -20,20 +20,10 @@
|
||||
|
||||
#include "call/video_receive_stream.h"
|
||||
#include "call/video_send_stream.h"
|
||||
#include "logging/rtc_event_log/events/rtc_event_dtls_transport_state.h"
|
||||
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h"
|
||||
#include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h"
|
||||
#include "logging/rtc_event_log/events/rtc_event_probe_result_failure.h"
|
||||
#include "logging/rtc_event_log/logged_events.h"
|
||||
#include "logging/rtc_event_log/rtc_event_log.h"
|
||||
#include "logging/rtc_event_log/rtc_stream_config.h"
|
||||
#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/common_header.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/nack.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/remb.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
|
||||
#include "rtc_base/ignore_wundef.h"
|
||||
|
||||
// Files generated at build-time by the protobuf compiler.
|
||||
@ -49,418 +39,6 @@ RTC_POP_IGNORING_WUNDEF()
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
enum class BandwidthUsage;
|
||||
struct AudioEncoderRuntimeConfig;
|
||||
|
||||
// The different event types are deliberately POD. Analysis of large logs is
|
||||
// already resource intensive. The code simplifications that would be possible
|
||||
// possible by having a base class (containing e.g. the log time) are not
|
||||
// considered to outweigh the added memory and runtime overhead incurred by
|
||||
// adding a vptr.
|
||||
struct LoggedAlrStateEvent {
|
||||
LoggedAlrStateEvent() = default;
|
||||
LoggedAlrStateEvent(int64_t timestamp_us, bool in_alr)
|
||||
: timestamp_us(timestamp_us), in_alr(in_alr) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
bool in_alr;
|
||||
};
|
||||
|
||||
struct LoggedAudioPlayoutEvent {
|
||||
LoggedAudioPlayoutEvent() = default;
|
||||
LoggedAudioPlayoutEvent(int64_t timestamp_us, uint32_t ssrc)
|
||||
: timestamp_us(timestamp_us), ssrc(ssrc) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
uint32_t ssrc;
|
||||
};
|
||||
|
||||
struct LoggedAudioNetworkAdaptationEvent {
|
||||
LoggedAudioNetworkAdaptationEvent() = default;
|
||||
LoggedAudioNetworkAdaptationEvent(int64_t timestamp_us,
|
||||
const AudioEncoderRuntimeConfig& config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
AudioEncoderRuntimeConfig config;
|
||||
};
|
||||
|
||||
struct LoggedBweDelayBasedUpdate {
|
||||
LoggedBweDelayBasedUpdate() = default;
|
||||
LoggedBweDelayBasedUpdate(int64_t timestamp_us,
|
||||
int32_t bitrate_bps,
|
||||
BandwidthUsage detector_state)
|
||||
: timestamp_us(timestamp_us),
|
||||
bitrate_bps(bitrate_bps),
|
||||
detector_state(detector_state) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t bitrate_bps;
|
||||
BandwidthUsage detector_state;
|
||||
};
|
||||
|
||||
struct LoggedBweLossBasedUpdate {
|
||||
LoggedBweLossBasedUpdate() = default;
|
||||
LoggedBweLossBasedUpdate(int64_t timestamp_us,
|
||||
int32_t bitrate_bps,
|
||||
uint8_t fraction_lost,
|
||||
int32_t expected_packets)
|
||||
: timestamp_us(timestamp_us),
|
||||
bitrate_bps(bitrate_bps),
|
||||
fraction_lost(fraction_lost),
|
||||
expected_packets(expected_packets) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t bitrate_bps;
|
||||
uint8_t fraction_lost;
|
||||
int32_t expected_packets;
|
||||
};
|
||||
|
||||
struct LoggedDtlsTransportState {
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
DtlsTransportState dtls_transport_state;
|
||||
};
|
||||
|
||||
struct LoggedDtlsWritableState {
|
||||
LoggedDtlsWritableState() = default;
|
||||
explicit LoggedDtlsWritableState(bool writable) : writable(writable) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
bool writable;
|
||||
};
|
||||
|
||||
struct LoggedBweProbeClusterCreatedEvent {
|
||||
LoggedBweProbeClusterCreatedEvent() = default;
|
||||
LoggedBweProbeClusterCreatedEvent(int64_t timestamp_us,
|
||||
int32_t id,
|
||||
int32_t bitrate_bps,
|
||||
uint32_t min_packets,
|
||||
uint32_t min_bytes)
|
||||
: timestamp_us(timestamp_us),
|
||||
id(id),
|
||||
bitrate_bps(bitrate_bps),
|
||||
min_packets(min_packets),
|
||||
min_bytes(min_bytes) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t id;
|
||||
int32_t bitrate_bps;
|
||||
uint32_t min_packets;
|
||||
uint32_t min_bytes;
|
||||
};
|
||||
|
||||
struct LoggedBweProbeSuccessEvent {
|
||||
LoggedBweProbeSuccessEvent() = default;
|
||||
LoggedBweProbeSuccessEvent(int64_t timestamp_us,
|
||||
int32_t id,
|
||||
int32_t bitrate_bps)
|
||||
: timestamp_us(timestamp_us), id(id), bitrate_bps(bitrate_bps) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t id;
|
||||
int32_t bitrate_bps;
|
||||
};
|
||||
|
||||
struct LoggedBweProbeFailureEvent {
|
||||
LoggedBweProbeFailureEvent() = default;
|
||||
LoggedBweProbeFailureEvent(int64_t timestamp_us,
|
||||
int32_t id,
|
||||
ProbeFailureReason failure_reason)
|
||||
: timestamp_us(timestamp_us), id(id), failure_reason(failure_reason) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int32_t id;
|
||||
ProbeFailureReason failure_reason;
|
||||
};
|
||||
|
||||
struct LoggedIceCandidatePairConfig {
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
IceCandidatePairConfigType type;
|
||||
uint32_t candidate_pair_id;
|
||||
IceCandidateType local_candidate_type;
|
||||
IceCandidatePairProtocol local_relay_protocol;
|
||||
IceCandidateNetworkType local_network_type;
|
||||
IceCandidatePairAddressFamily local_address_family;
|
||||
IceCandidateType remote_candidate_type;
|
||||
IceCandidatePairAddressFamily remote_address_family;
|
||||
IceCandidatePairProtocol candidate_pair_protocol;
|
||||
};
|
||||
|
||||
struct LoggedIceCandidatePairEvent {
|
||||
LoggedIceCandidatePairEvent() = default;
|
||||
LoggedIceCandidatePairEvent(int64_t timestamp_us,
|
||||
IceCandidatePairEventType type,
|
||||
uint32_t candidate_pair_id,
|
||||
uint32_t transaction_id)
|
||||
: timestamp_us(timestamp_us),
|
||||
type(type),
|
||||
candidate_pair_id(candidate_pair_id),
|
||||
transaction_id(transaction_id) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
IceCandidatePairEventType type;
|
||||
uint32_t candidate_pair_id;
|
||||
uint32_t transaction_id;
|
||||
};
|
||||
|
||||
struct LoggedRtpPacket {
|
||||
LoggedRtpPacket(uint64_t timestamp_us,
|
||||
RTPHeader header,
|
||||
size_t header_length,
|
||||
size_t total_length)
|
||||
: timestamp_us(timestamp_us),
|
||||
header(header),
|
||||
header_length(header_length),
|
||||
total_length(total_length) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
// TODO(terelius): This allocates space for 15 CSRCs even if none are used.
|
||||
RTPHeader header;
|
||||
size_t header_length;
|
||||
size_t total_length;
|
||||
};
|
||||
|
||||
struct LoggedRtpPacketIncoming {
|
||||
LoggedRtpPacketIncoming(uint64_t timestamp_us,
|
||||
RTPHeader header,
|
||||
size_t header_length,
|
||||
size_t total_length)
|
||||
: rtp(timestamp_us, header, header_length, total_length) {}
|
||||
int64_t log_time_us() const { return rtp.timestamp_us; }
|
||||
int64_t log_time_ms() const { return rtp.timestamp_us / 1000; }
|
||||
|
||||
LoggedRtpPacket rtp;
|
||||
};
|
||||
|
||||
struct LoggedRtpPacketOutgoing {
|
||||
LoggedRtpPacketOutgoing(uint64_t timestamp_us,
|
||||
RTPHeader header,
|
||||
size_t header_length,
|
||||
size_t total_length)
|
||||
: rtp(timestamp_us, header, header_length, total_length) {}
|
||||
int64_t log_time_us() const { return rtp.timestamp_us; }
|
||||
int64_t log_time_ms() const { return rtp.timestamp_us / 1000; }
|
||||
|
||||
LoggedRtpPacket rtp;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacket {
|
||||
LoggedRtcpPacket(uint64_t timestamp_us,
|
||||
const uint8_t* packet,
|
||||
size_t total_length);
|
||||
LoggedRtcpPacket(uint64_t timestamp_us, const std::string& packet);
|
||||
LoggedRtcpPacket(const LoggedRtcpPacket&);
|
||||
~LoggedRtcpPacket();
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
std::vector<uint8_t> raw_data;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketIncoming {
|
||||
LoggedRtcpPacketIncoming(uint64_t timestamp_us,
|
||||
const uint8_t* packet,
|
||||
size_t total_length)
|
||||
: rtcp(timestamp_us, packet, total_length) {}
|
||||
LoggedRtcpPacketIncoming(uint64_t timestamp_us, const std::string& packet)
|
||||
: rtcp(timestamp_us, packet) {}
|
||||
|
||||
int64_t log_time_us() const { return rtcp.timestamp_us; }
|
||||
int64_t log_time_ms() const { return rtcp.timestamp_us / 1000; }
|
||||
|
||||
LoggedRtcpPacket rtcp;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketOutgoing {
|
||||
LoggedRtcpPacketOutgoing(uint64_t timestamp_us,
|
||||
const uint8_t* packet,
|
||||
size_t total_length)
|
||||
: rtcp(timestamp_us, packet, total_length) {}
|
||||
LoggedRtcpPacketOutgoing(uint64_t timestamp_us, const std::string& packet)
|
||||
: rtcp(timestamp_us, packet) {}
|
||||
|
||||
int64_t log_time_us() const { return rtcp.timestamp_us; }
|
||||
int64_t log_time_ms() const { return rtcp.timestamp_us / 1000; }
|
||||
|
||||
LoggedRtcpPacket rtcp;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketReceiverReport {
|
||||
LoggedRtcpPacketReceiverReport() = default;
|
||||
LoggedRtcpPacketReceiverReport(int64_t timestamp_us,
|
||||
const rtcp::ReceiverReport& rr)
|
||||
: timestamp_us(timestamp_us), rr(rr) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::ReceiverReport rr;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketSenderReport {
|
||||
LoggedRtcpPacketSenderReport() = default;
|
||||
LoggedRtcpPacketSenderReport(int64_t timestamp_us,
|
||||
const rtcp::SenderReport& sr)
|
||||
: timestamp_us(timestamp_us), sr(sr) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::SenderReport sr;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketRemb {
|
||||
LoggedRtcpPacketRemb() = default;
|
||||
LoggedRtcpPacketRemb(int64_t timestamp_us, const rtcp::Remb& remb)
|
||||
: timestamp_us(timestamp_us), remb(remb) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::Remb remb;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketNack {
|
||||
LoggedRtcpPacketNack() = default;
|
||||
LoggedRtcpPacketNack(int64_t timestamp_us, const rtcp::Nack& nack)
|
||||
: timestamp_us(timestamp_us), nack(nack) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::Nack nack;
|
||||
};
|
||||
|
||||
struct LoggedRtcpPacketTransportFeedback {
|
||||
LoggedRtcpPacketTransportFeedback() = default;
|
||||
LoggedRtcpPacketTransportFeedback(
|
||||
int64_t timestamp_us,
|
||||
const rtcp::TransportFeedback& transport_feedback)
|
||||
: timestamp_us(timestamp_us), transport_feedback(transport_feedback) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtcp::TransportFeedback transport_feedback;
|
||||
};
|
||||
|
||||
struct LoggedStartEvent {
|
||||
explicit LoggedStartEvent(int64_t timestamp_us)
|
||||
: LoggedStartEvent(timestamp_us, timestamp_us / 1000) {}
|
||||
|
||||
LoggedStartEvent(int64_t timestamp_us, int64_t utc_start_time_ms)
|
||||
: timestamp_us(timestamp_us), utc_start_time_ms(utc_start_time_ms) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
int64_t utc_start_time_ms;
|
||||
};
|
||||
|
||||
struct LoggedStopEvent {
|
||||
explicit LoggedStopEvent(int64_t timestamp_us) : timestamp_us(timestamp_us) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
};
|
||||
|
||||
struct LoggedAudioRecvConfig {
|
||||
LoggedAudioRecvConfig() = default;
|
||||
LoggedAudioRecvConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtclog::StreamConfig config;
|
||||
};
|
||||
|
||||
struct LoggedAudioSendConfig {
|
||||
LoggedAudioSendConfig() = default;
|
||||
LoggedAudioSendConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtclog::StreamConfig config;
|
||||
};
|
||||
|
||||
struct LoggedVideoRecvConfig {
|
||||
LoggedVideoRecvConfig() = default;
|
||||
LoggedVideoRecvConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtclog::StreamConfig config;
|
||||
};
|
||||
|
||||
struct LoggedVideoSendConfig {
|
||||
LoggedVideoSendConfig() = default;
|
||||
LoggedVideoSendConfig(int64_t timestamp_us, const rtclog::StreamConfig config)
|
||||
: timestamp_us(timestamp_us), config(config) {}
|
||||
|
||||
int64_t log_time_us() const { return timestamp_us; }
|
||||
int64_t log_time_ms() const { return timestamp_us / 1000; }
|
||||
|
||||
int64_t timestamp_us;
|
||||
rtclog::StreamConfig config;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class PacketView;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user