Remove deprecated APIs from RTC event log parser.
Bug: webrtc:8111 Change-Id: Ic64f8754c35c2de16d1f74e5d470a501d0a1af52 Reviewed-on: https://webrtc-review.googlesource.com/c/110900 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Björn Terelius <terelius@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25637}
This commit is contained in:

committed by
Commit Bot

parent
3bc696fe48
commit
fdc635d2a8
@ -198,8 +198,6 @@ int main(int argc, char* argv[]) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "Found " << parsed_stream.GetNumberOfEvents()
|
|
||||||
<< " events in the input file." << std::endl;
|
|
||||||
int rtp_counter = 0, rtcp_counter = 0;
|
int rtp_counter = 0, rtcp_counter = 0;
|
||||||
bool header_only = false;
|
bool header_only = false;
|
||||||
|
|
||||||
|
@ -59,52 +59,6 @@ RtcpMode GetRuntimeRtcpMode(rtclog::VideoReceiveConfig::RtcpMode rtcp_mode) {
|
|||||||
return RtcpMode::kOff;
|
return RtcpMode::kOff;
|
||||||
}
|
}
|
||||||
|
|
||||||
ParsedRtcEventLogNew::EventType GetRuntimeEventType(
|
|
||||||
rtclog::Event::EventType event_type) {
|
|
||||||
switch (event_type) {
|
|
||||||
case rtclog::Event::UNKNOWN_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::UNKNOWN_EVENT;
|
|
||||||
case rtclog::Event::LOG_START:
|
|
||||||
return ParsedRtcEventLogNew::EventType::LOG_START;
|
|
||||||
case rtclog::Event::LOG_END:
|
|
||||||
return ParsedRtcEventLogNew::EventType::LOG_END;
|
|
||||||
case rtclog::Event::RTP_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::RTP_EVENT;
|
|
||||||
case rtclog::Event::RTCP_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::RTCP_EVENT;
|
|
||||||
case rtclog::Event::AUDIO_PLAYOUT_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::AUDIO_PLAYOUT_EVENT;
|
|
||||||
case rtclog::Event::LOSS_BASED_BWE_UPDATE:
|
|
||||||
return ParsedRtcEventLogNew::EventType::LOSS_BASED_BWE_UPDATE;
|
|
||||||
case rtclog::Event::DELAY_BASED_BWE_UPDATE:
|
|
||||||
return ParsedRtcEventLogNew::EventType::DELAY_BASED_BWE_UPDATE;
|
|
||||||
case rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::VIDEO_RECEIVER_CONFIG_EVENT;
|
|
||||||
case rtclog::Event::VIDEO_SENDER_CONFIG_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::VIDEO_SENDER_CONFIG_EVENT;
|
|
||||||
case rtclog::Event::AUDIO_RECEIVER_CONFIG_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::AUDIO_RECEIVER_CONFIG_EVENT;
|
|
||||||
case rtclog::Event::AUDIO_SENDER_CONFIG_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::AUDIO_SENDER_CONFIG_EVENT;
|
|
||||||
case rtclog::Event::AUDIO_NETWORK_ADAPTATION_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::AUDIO_NETWORK_ADAPTATION_EVENT;
|
|
||||||
case rtclog::Event::BWE_PROBE_CLUSTER_CREATED_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::BWE_PROBE_CLUSTER_CREATED_EVENT;
|
|
||||||
case rtclog::Event::BWE_PROBE_RESULT_EVENT:
|
|
||||||
// Probe successes and failures are currently stored in the same proto
|
|
||||||
// message, we are moving towards separate messages. Probe results
|
|
||||||
// therefore need special treatment in the parser.
|
|
||||||
return ParsedRtcEventLogNew::EventType::UNKNOWN_EVENT;
|
|
||||||
case rtclog::Event::ALR_STATE_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::ALR_STATE_EVENT;
|
|
||||||
case rtclog::Event::ICE_CANDIDATE_PAIR_CONFIG:
|
|
||||||
return ParsedRtcEventLogNew::EventType::ICE_CANDIDATE_PAIR_CONFIG;
|
|
||||||
case rtclog::Event::ICE_CANDIDATE_PAIR_EVENT:
|
|
||||||
return ParsedRtcEventLogNew::EventType::ICE_CANDIDATE_PAIR_EVENT;
|
|
||||||
}
|
|
||||||
return ParsedRtcEventLogNew::EventType::UNKNOWN_EVENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
BandwidthUsage GetRuntimeDetectorState(
|
BandwidthUsage GetRuntimeDetectorState(
|
||||||
rtclog::DelayBasedBweUpdate::DetectorState detector_state) {
|
rtclog::DelayBasedBweUpdate::DetectorState detector_state) {
|
||||||
switch (detector_state) {
|
switch (detector_state) {
|
||||||
@ -846,7 +800,6 @@ ParsedRtcEventLogNew::ParsedRtcEventLogNew(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ParsedRtcEventLogNew::Clear() {
|
void ParsedRtcEventLogNew::Clear() {
|
||||||
events_.clear();
|
|
||||||
default_extension_map_ = GetDefaultHeaderExtensionMap();
|
default_extension_map_ = GetDefaultHeaderExtensionMap();
|
||||||
|
|
||||||
incoming_rtx_ssrcs_.clear();
|
incoming_rtx_ssrcs_.clear();
|
||||||
@ -1030,7 +983,6 @@ bool ParsedRtcEventLogNew::ParseStreamInternal(
|
|||||||
|
|
||||||
RTC_CHECK_EQ(event_stream.stream_size(), 1);
|
RTC_CHECK_EQ(event_stream.stream_size(), 1);
|
||||||
StoreParsedLegacyEvent(event_stream.stream(0));
|
StoreParsedLegacyEvent(event_stream.stream(0));
|
||||||
events_.push_back(event_stream.stream(0));
|
|
||||||
} else {
|
} else {
|
||||||
// Parse the protobuf event from the buffer.
|
// Parse the protobuf event from the buffer.
|
||||||
rtclog2::EventStream event_stream;
|
rtclog2::EventStream event_stream;
|
||||||
@ -1045,6 +997,7 @@ bool ParsedRtcEventLogNew::ParseStreamInternal(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
||||||
|
RTC_CHECK(event.has_type());
|
||||||
if (event.type() != rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT &&
|
if (event.type() != rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT &&
|
||||||
event.type() != rtclog::Event::VIDEO_SENDER_CONFIG_EVENT &&
|
event.type() != rtclog::Event::VIDEO_SENDER_CONFIG_EVENT &&
|
||||||
event.type() != rtclog::Event::AUDIO_RECEIVER_CONFIG_EVENT &&
|
event.type() != rtclog::Event::AUDIO_RECEIVER_CONFIG_EVENT &&
|
||||||
@ -1057,8 +1010,8 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
|||||||
last_timestamp_ = std::max(last_timestamp_, timestamp);
|
last_timestamp_ = std::max(last_timestamp_, timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (GetEventType(event)) {
|
switch (event.type()) {
|
||||||
case ParsedRtcEventLogNew::EventType::VIDEO_RECEIVER_CONFIG_EVENT: {
|
case rtclog::Event::VIDEO_RECEIVER_CONFIG_EVENT: {
|
||||||
rtclog::StreamConfig config = GetVideoReceiveConfig(event);
|
rtclog::StreamConfig config = GetVideoReceiveConfig(event);
|
||||||
video_recv_configs_.emplace_back(GetTimestamp(event), config);
|
video_recv_configs_.emplace_back(GetTimestamp(event), config);
|
||||||
incoming_rtp_extensions_maps_[config.remote_ssrc] =
|
incoming_rtp_extensions_maps_[config.remote_ssrc] =
|
||||||
@ -1073,7 +1026,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
|||||||
incoming_rtx_ssrcs_.insert(config.rtx_ssrc);
|
incoming_rtx_ssrcs_.insert(config.rtx_ssrc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::VIDEO_SENDER_CONFIG_EVENT: {
|
case rtclog::Event::VIDEO_SENDER_CONFIG_EVENT: {
|
||||||
std::vector<rtclog::StreamConfig> configs = GetVideoSendConfig(event);
|
std::vector<rtclog::StreamConfig> configs = GetVideoSendConfig(event);
|
||||||
video_send_configs_.emplace_back(GetTimestamp(event), configs);
|
video_send_configs_.emplace_back(GetTimestamp(event), configs);
|
||||||
for (const auto& config : configs) {
|
for (const auto& config : configs) {
|
||||||
@ -1087,7 +1040,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::AUDIO_RECEIVER_CONFIG_EVENT: {
|
case rtclog::Event::AUDIO_RECEIVER_CONFIG_EVENT: {
|
||||||
rtclog::StreamConfig config = GetAudioReceiveConfig(event);
|
rtclog::StreamConfig config = GetAudioReceiveConfig(event);
|
||||||
audio_recv_configs_.emplace_back(GetTimestamp(event), config);
|
audio_recv_configs_.emplace_back(GetTimestamp(event), config);
|
||||||
incoming_rtp_extensions_maps_[config.remote_ssrc] =
|
incoming_rtp_extensions_maps_[config.remote_ssrc] =
|
||||||
@ -1097,7 +1050,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
|||||||
incoming_audio_ssrcs_.insert(config.remote_ssrc);
|
incoming_audio_ssrcs_.insert(config.remote_ssrc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::AUDIO_SENDER_CONFIG_EVENT: {
|
case rtclog::Event::AUDIO_SENDER_CONFIG_EVENT: {
|
||||||
rtclog::StreamConfig config = GetAudioSendConfig(event);
|
rtclog::StreamConfig config = GetAudioSendConfig(event);
|
||||||
audio_send_configs_.emplace_back(GetTimestamp(event), config);
|
audio_send_configs_.emplace_back(GetTimestamp(event), config);
|
||||||
outgoing_rtp_extensions_maps_[config.local_ssrc] =
|
outgoing_rtp_extensions_maps_[config.local_ssrc] =
|
||||||
@ -1105,7 +1058,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
|||||||
outgoing_audio_ssrcs_.insert(config.local_ssrc);
|
outgoing_audio_ssrcs_.insert(config.local_ssrc);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::RTP_EVENT: {
|
case rtclog::Event::RTP_EVENT: {
|
||||||
PacketDirection direction;
|
PacketDirection direction;
|
||||||
uint8_t header[IP_PACKET_SIZE];
|
uint8_t header[IP_PACKET_SIZE];
|
||||||
size_t header_length;
|
size_t header_length;
|
||||||
@ -1148,7 +1101,7 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::RTCP_EVENT: {
|
case rtclog::Event::RTCP_EVENT: {
|
||||||
PacketDirection direction;
|
PacketDirection direction;
|
||||||
uint8_t packet[IP_PACKET_SIZE];
|
uint8_t packet[IP_PACKET_SIZE];
|
||||||
size_t total_length;
|
size_t total_length;
|
||||||
@ -1234,113 +1187,76 @@ void ParsedRtcEventLogNew::StoreParsedLegacyEvent(const rtclog::Event& event) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::LOG_START: {
|
case rtclog::Event::LOG_START: {
|
||||||
start_log_events_.push_back(LoggedStartEvent(GetTimestamp(event)));
|
start_log_events_.push_back(LoggedStartEvent(GetTimestamp(event)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::LOG_END: {
|
case rtclog::Event::LOG_END: {
|
||||||
stop_log_events_.push_back(LoggedStopEvent(GetTimestamp(event)));
|
stop_log_events_.push_back(LoggedStopEvent(GetTimestamp(event)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::AUDIO_PLAYOUT_EVENT: {
|
case rtclog::Event::AUDIO_PLAYOUT_EVENT: {
|
||||||
LoggedAudioPlayoutEvent playout_event = GetAudioPlayout(event);
|
LoggedAudioPlayoutEvent playout_event = GetAudioPlayout(event);
|
||||||
audio_playout_events_[playout_event.ssrc].push_back(playout_event);
|
audio_playout_events_[playout_event.ssrc].push_back(playout_event);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::LOSS_BASED_BWE_UPDATE: {
|
case rtclog::Event::LOSS_BASED_BWE_UPDATE: {
|
||||||
bwe_loss_updates_.push_back(GetLossBasedBweUpdate(event));
|
bwe_loss_updates_.push_back(GetLossBasedBweUpdate(event));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::DELAY_BASED_BWE_UPDATE: {
|
case rtclog::Event::DELAY_BASED_BWE_UPDATE: {
|
||||||
bwe_delay_updates_.push_back(GetDelayBasedBweUpdate(event));
|
bwe_delay_updates_.push_back(GetDelayBasedBweUpdate(event));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::AUDIO_NETWORK_ADAPTATION_EVENT: {
|
case rtclog::Event::AUDIO_NETWORK_ADAPTATION_EVENT: {
|
||||||
LoggedAudioNetworkAdaptationEvent ana_event =
|
LoggedAudioNetworkAdaptationEvent ana_event =
|
||||||
GetAudioNetworkAdaptation(event);
|
GetAudioNetworkAdaptation(event);
|
||||||
audio_network_adaptation_events_.push_back(ana_event);
|
audio_network_adaptation_events_.push_back(ana_event);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::BWE_PROBE_CLUSTER_CREATED_EVENT: {
|
case rtclog::Event::BWE_PROBE_CLUSTER_CREATED_EVENT: {
|
||||||
bwe_probe_cluster_created_events_.push_back(
|
bwe_probe_cluster_created_events_.push_back(
|
||||||
GetBweProbeClusterCreated(event));
|
GetBweProbeClusterCreated(event));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::BWE_PROBE_FAILURE_EVENT: {
|
case rtclog::Event::BWE_PROBE_RESULT_EVENT: {
|
||||||
bwe_probe_failure_events_.push_back(GetBweProbeFailure(event));
|
// Probe successes and failures are currently stored in the same proto
|
||||||
break;
|
// message, we are moving towards separate messages. Probe results
|
||||||
}
|
// therefore need special treatment in the parser.
|
||||||
case ParsedRtcEventLogNew::EventType::BWE_PROBE_SUCCESS_EVENT: {
|
RTC_CHECK(event.has_probe_result());
|
||||||
|
RTC_CHECK(event.probe_result().has_result());
|
||||||
|
if (event.probe_result().result() == rtclog::BweProbeResult::SUCCESS) {
|
||||||
bwe_probe_success_events_.push_back(GetBweProbeSuccess(event));
|
bwe_probe_success_events_.push_back(GetBweProbeSuccess(event));
|
||||||
|
} else {
|
||||||
|
bwe_probe_failure_events_.push_back(GetBweProbeFailure(event));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::ALR_STATE_EVENT: {
|
case rtclog::Event::ALR_STATE_EVENT: {
|
||||||
alr_state_events_.push_back(GetAlrState(event));
|
alr_state_events_.push_back(GetAlrState(event));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::ICE_CANDIDATE_PAIR_CONFIG: {
|
case rtclog::Event::ICE_CANDIDATE_PAIR_CONFIG: {
|
||||||
ice_candidate_pair_configs_.push_back(GetIceCandidatePairConfig(event));
|
ice_candidate_pair_configs_.push_back(GetIceCandidatePairConfig(event));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::ICE_CANDIDATE_PAIR_EVENT: {
|
case rtclog::Event::ICE_CANDIDATE_PAIR_EVENT: {
|
||||||
ice_candidate_pair_events_.push_back(GetIceCandidatePairEvent(event));
|
ice_candidate_pair_events_.push_back(GetIceCandidatePairEvent(event));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ParsedRtcEventLogNew::EventType::UNKNOWN_EVENT: {
|
case rtclog::Event::UNKNOWN_EVENT: {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ParsedRtcEventLogNew::GetNumberOfEvents() const {
|
|
||||||
return events_.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
int64_t ParsedRtcEventLogNew::GetTimestamp(size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetTimestamp(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
int64_t ParsedRtcEventLogNew::GetTimestamp(const rtclog::Event& event) const {
|
int64_t ParsedRtcEventLogNew::GetTimestamp(const rtclog::Event& event) const {
|
||||||
RTC_CHECK(event.has_timestamp_us());
|
RTC_CHECK(event.has_timestamp_us());
|
||||||
return event.timestamp_us();
|
return event.timestamp_us();
|
||||||
}
|
}
|
||||||
|
|
||||||
ParsedRtcEventLogNew::EventType ParsedRtcEventLogNew::GetEventType(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetEventType(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
ParsedRtcEventLogNew::EventType ParsedRtcEventLogNew::GetEventType(
|
|
||||||
const rtclog::Event& event) const {
|
|
||||||
RTC_CHECK(event.has_type());
|
|
||||||
if (event.type() == rtclog::Event::BWE_PROBE_RESULT_EVENT) {
|
|
||||||
RTC_CHECK(event.has_probe_result());
|
|
||||||
RTC_CHECK(event.probe_result().has_result());
|
|
||||||
if (event.probe_result().result() == rtclog::BweProbeResult::SUCCESS)
|
|
||||||
return ParsedRtcEventLogNew::EventType::BWE_PROBE_SUCCESS_EVENT;
|
|
||||||
return ParsedRtcEventLogNew::EventType::BWE_PROBE_FAILURE_EVENT;
|
|
||||||
}
|
|
||||||
return GetRuntimeEventType(event.type());
|
|
||||||
}
|
|
||||||
|
|
||||||
// The header must have space for at least IP_PACKET_SIZE bytes.
|
// The header must have space for at least IP_PACKET_SIZE bytes.
|
||||||
const webrtc::RtpHeaderExtensionMap* ParsedRtcEventLogNew::GetRtpHeader(
|
|
||||||
size_t index,
|
|
||||||
PacketDirection* incoming,
|
|
||||||
uint8_t* header,
|
|
||||||
size_t* header_length,
|
|
||||||
size_t* total_length,
|
|
||||||
int* probe_cluster_id) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetRtpHeader(event, incoming, header, header_length, total_length,
|
|
||||||
probe_cluster_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
const webrtc::RtpHeaderExtensionMap* ParsedRtcEventLogNew::GetRtpHeader(
|
const webrtc::RtpHeaderExtensionMap* ParsedRtcEventLogNew::GetRtpHeader(
|
||||||
const rtclog::Event& event,
|
const rtclog::Event& event,
|
||||||
PacketDirection* incoming,
|
PacketDirection* incoming,
|
||||||
@ -1402,15 +1318,6 @@ const webrtc::RtpHeaderExtensionMap* ParsedRtcEventLogNew::GetRtpHeader(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// The packet must have space for at least IP_PACKET_SIZE bytes.
|
// The packet must have space for at least IP_PACKET_SIZE bytes.
|
||||||
void ParsedRtcEventLogNew::GetRtcpPacket(size_t index,
|
|
||||||
PacketDirection* incoming,
|
|
||||||
uint8_t* packet,
|
|
||||||
size_t* length) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
GetRtcpPacket(event, incoming, packet, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ParsedRtcEventLogNew::GetRtcpPacket(const rtclog::Event& event,
|
void ParsedRtcEventLogNew::GetRtcpPacket(const rtclog::Event& event,
|
||||||
PacketDirection* incoming,
|
PacketDirection* incoming,
|
||||||
uint8_t* packet,
|
uint8_t* packet,
|
||||||
@ -1438,12 +1345,6 @@ void ParsedRtcEventLogNew::GetRtcpPacket(const rtclog::Event& event,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rtclog::StreamConfig ParsedRtcEventLogNew::GetVideoReceiveConfig(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
return GetVideoReceiveConfig(events_[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
rtclog::StreamConfig ParsedRtcEventLogNew::GetVideoReceiveConfig(
|
rtclog::StreamConfig ParsedRtcEventLogNew::GetVideoReceiveConfig(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
rtclog::StreamConfig config;
|
rtclog::StreamConfig config;
|
||||||
@ -1505,12 +1406,6 @@ rtclog::StreamConfig ParsedRtcEventLogNew::GetVideoReceiveConfig(
|
|||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<rtclog::StreamConfig> ParsedRtcEventLogNew::GetVideoSendConfig(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
return GetVideoSendConfig(events_[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<rtclog::StreamConfig> ParsedRtcEventLogNew::GetVideoSendConfig(
|
std::vector<rtclog::StreamConfig> ParsedRtcEventLogNew::GetVideoSendConfig(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
std::vector<rtclog::StreamConfig> configs;
|
std::vector<rtclog::StreamConfig> configs;
|
||||||
@ -1549,12 +1444,6 @@ std::vector<rtclog::StreamConfig> ParsedRtcEventLogNew::GetVideoSendConfig(
|
|||||||
return configs;
|
return configs;
|
||||||
}
|
}
|
||||||
|
|
||||||
rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioReceiveConfig(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
return GetAudioReceiveConfig(events_[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioReceiveConfig(
|
rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioReceiveConfig(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
rtclog::StreamConfig config;
|
rtclog::StreamConfig config;
|
||||||
@ -1574,12 +1463,6 @@ rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioReceiveConfig(
|
|||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioSendConfig(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
return GetAudioSendConfig(events_[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioSendConfig(
|
rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioSendConfig(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
rtclog::StreamConfig config;
|
rtclog::StreamConfig config;
|
||||||
@ -1596,13 +1479,6 @@ rtclog::StreamConfig ParsedRtcEventLogNew::GetAudioSendConfig(
|
|||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedAudioPlayoutEvent ParsedRtcEventLogNew::GetAudioPlayout(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetAudioPlayout(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedAudioPlayoutEvent ParsedRtcEventLogNew::GetAudioPlayout(
|
LoggedAudioPlayoutEvent ParsedRtcEventLogNew::GetAudioPlayout(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
RTC_CHECK(event.has_type());
|
RTC_CHECK(event.has_type());
|
||||||
@ -1616,13 +1492,6 @@ LoggedAudioPlayoutEvent ParsedRtcEventLogNew::GetAudioPlayout(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedBweLossBasedUpdate ParsedRtcEventLogNew::GetLossBasedBweUpdate(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetLossBasedBweUpdate(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedBweLossBasedUpdate ParsedRtcEventLogNew::GetLossBasedBweUpdate(
|
LoggedBweLossBasedUpdate ParsedRtcEventLogNew::GetLossBasedBweUpdate(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
RTC_CHECK(event.has_type());
|
RTC_CHECK(event.has_type());
|
||||||
@ -1641,13 +1510,6 @@ LoggedBweLossBasedUpdate ParsedRtcEventLogNew::GetLossBasedBweUpdate(
|
|||||||
return bwe_update;
|
return bwe_update;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedBweDelayBasedUpdate ParsedRtcEventLogNew::GetDelayBasedBweUpdate(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetDelayBasedBweUpdate(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedBweDelayBasedUpdate ParsedRtcEventLogNew::GetDelayBasedBweUpdate(
|
LoggedBweDelayBasedUpdate ParsedRtcEventLogNew::GetDelayBasedBweUpdate(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
RTC_CHECK(event.has_type());
|
RTC_CHECK(event.has_type());
|
||||||
@ -1665,13 +1527,6 @@ LoggedBweDelayBasedUpdate ParsedRtcEventLogNew::GetDelayBasedBweUpdate(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedAudioNetworkAdaptationEvent
|
|
||||||
ParsedRtcEventLogNew::GetAudioNetworkAdaptation(size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetAudioNetworkAdaptation(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedAudioNetworkAdaptationEvent
|
LoggedAudioNetworkAdaptationEvent
|
||||||
ParsedRtcEventLogNew::GetAudioNetworkAdaptation(
|
ParsedRtcEventLogNew::GetAudioNetworkAdaptation(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
@ -1699,13 +1554,6 @@ ParsedRtcEventLogNew::GetAudioNetworkAdaptation(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedBweProbeClusterCreatedEvent
|
|
||||||
ParsedRtcEventLogNew::GetBweProbeClusterCreated(size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetBweProbeClusterCreated(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedBweProbeClusterCreatedEvent
|
LoggedBweProbeClusterCreatedEvent
|
||||||
ParsedRtcEventLogNew::GetBweProbeClusterCreated(
|
ParsedRtcEventLogNew::GetBweProbeClusterCreated(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
@ -1726,13 +1574,6 @@ ParsedRtcEventLogNew::GetBweProbeClusterCreated(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedBweProbeFailureEvent ParsedRtcEventLogNew::GetBweProbeFailure(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetBweProbeFailure(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedBweProbeFailureEvent ParsedRtcEventLogNew::GetBweProbeFailure(
|
LoggedBweProbeFailureEvent ParsedRtcEventLogNew::GetBweProbeFailure(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
RTC_CHECK(event.has_type());
|
RTC_CHECK(event.has_type());
|
||||||
@ -1763,13 +1604,6 @@ LoggedBweProbeFailureEvent ParsedRtcEventLogNew::GetBweProbeFailure(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedBweProbeSuccessEvent ParsedRtcEventLogNew::GetBweProbeSuccess(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetBweProbeSuccess(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedBweProbeSuccessEvent ParsedRtcEventLogNew::GetBweProbeSuccess(
|
LoggedBweProbeSuccessEvent ParsedRtcEventLogNew::GetBweProbeSuccess(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
RTC_CHECK(event.has_type());
|
RTC_CHECK(event.has_type());
|
||||||
@ -1789,12 +1623,6 @@ LoggedBweProbeSuccessEvent ParsedRtcEventLogNew::GetBweProbeSuccess(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedAlrStateEvent ParsedRtcEventLogNew::GetAlrState(size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& event = events_[index];
|
|
||||||
return GetAlrState(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedAlrStateEvent ParsedRtcEventLogNew::GetAlrState(
|
LoggedAlrStateEvent ParsedRtcEventLogNew::GetAlrState(
|
||||||
const rtclog::Event& event) const {
|
const rtclog::Event& event) const {
|
||||||
RTC_CHECK(event.has_type());
|
RTC_CHECK(event.has_type());
|
||||||
@ -1809,13 +1637,6 @@ LoggedAlrStateEvent ParsedRtcEventLogNew::GetAlrState(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedIceCandidatePairConfig ParsedRtcEventLogNew::GetIceCandidatePairConfig(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& rtc_event = events_[index];
|
|
||||||
return GetIceCandidatePairConfig(rtc_event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedIceCandidatePairConfig ParsedRtcEventLogNew::GetIceCandidatePairConfig(
|
LoggedIceCandidatePairConfig ParsedRtcEventLogNew::GetIceCandidatePairConfig(
|
||||||
const rtclog::Event& rtc_event) const {
|
const rtclog::Event& rtc_event) const {
|
||||||
RTC_CHECK(rtc_event.has_type());
|
RTC_CHECK(rtc_event.has_type());
|
||||||
@ -1852,13 +1673,6 @@ LoggedIceCandidatePairConfig ParsedRtcEventLogNew::GetIceCandidatePairConfig(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggedIceCandidatePairEvent ParsedRtcEventLogNew::GetIceCandidatePairEvent(
|
|
||||||
size_t index) const {
|
|
||||||
RTC_CHECK_LT(index, GetNumberOfEvents());
|
|
||||||
const rtclog::Event& rtc_event = events_[index];
|
|
||||||
return GetIceCandidatePairEvent(rtc_event);
|
|
||||||
}
|
|
||||||
|
|
||||||
LoggedIceCandidatePairEvent ParsedRtcEventLogNew::GetIceCandidatePairEvent(
|
LoggedIceCandidatePairEvent ParsedRtcEventLogNew::GetIceCandidatePairEvent(
|
||||||
const rtclog::Event& rtc_event) const {
|
const rtclog::Event& rtc_event) const {
|
||||||
RTC_CHECK(rtc_event.has_type());
|
RTC_CHECK(rtc_event.has_type());
|
||||||
|
@ -612,30 +612,6 @@ class ParsedRtcEventLogNew {
|
|||||||
friend class RtcEventLogTestHelper;
|
friend class RtcEventLogTestHelper;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
~ParsedRtcEventLogNew();
|
|
||||||
|
|
||||||
enum class EventType {
|
|
||||||
UNKNOWN_EVENT = 0,
|
|
||||||
LOG_START = 1,
|
|
||||||
LOG_END = 2,
|
|
||||||
RTP_EVENT = 3,
|
|
||||||
RTCP_EVENT = 4,
|
|
||||||
AUDIO_PLAYOUT_EVENT = 5,
|
|
||||||
LOSS_BASED_BWE_UPDATE = 6,
|
|
||||||
DELAY_BASED_BWE_UPDATE = 7,
|
|
||||||
VIDEO_RECEIVER_CONFIG_EVENT = 8,
|
|
||||||
VIDEO_SENDER_CONFIG_EVENT = 9,
|
|
||||||
AUDIO_RECEIVER_CONFIG_EVENT = 10,
|
|
||||||
AUDIO_SENDER_CONFIG_EVENT = 11,
|
|
||||||
AUDIO_NETWORK_ADAPTATION_EVENT = 16,
|
|
||||||
BWE_PROBE_CLUSTER_CREATED_EVENT = 17,
|
|
||||||
BWE_PROBE_FAILURE_EVENT = 18,
|
|
||||||
BWE_PROBE_SUCCESS_EVENT = 19,
|
|
||||||
ALR_STATE_EVENT = 20,
|
|
||||||
ICE_CANDIDATE_PAIR_CONFIG = 21,
|
|
||||||
ICE_CANDIDATE_PAIR_EVENT = 22,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class MediaType { ANY, AUDIO, VIDEO, DATA };
|
enum class MediaType { ANY, AUDIO, VIDEO, DATA };
|
||||||
enum class UnconfiguredHeaderExtensions {
|
enum class UnconfiguredHeaderExtensions {
|
||||||
kDontParse,
|
kDontParse,
|
||||||
@ -676,6 +652,8 @@ class ParsedRtcEventLogNew {
|
|||||||
UnconfiguredHeaderExtensions parse_unconfigured_header_extensions =
|
UnconfiguredHeaderExtensions parse_unconfigured_header_extensions =
|
||||||
UnconfiguredHeaderExtensions::kDontParse);
|
UnconfiguredHeaderExtensions::kDontParse);
|
||||||
|
|
||||||
|
~ParsedRtcEventLogNew();
|
||||||
|
|
||||||
// Clears previously parsed events and resets the ParsedRtcEventLogNew to an
|
// Clears previously parsed events and resets the ParsedRtcEventLogNew to an
|
||||||
// empty state.
|
// empty state.
|
||||||
void Clear();
|
void Clear();
|
||||||
@ -690,111 +668,8 @@ class ParsedRtcEventLogNew {
|
|||||||
bool ParseStream(
|
bool ParseStream(
|
||||||
std::istream& stream); // no-presubmit-check TODO(webrtc:8982)
|
std::istream& stream); // no-presubmit-check TODO(webrtc:8982)
|
||||||
|
|
||||||
// Returns the number of events in an EventStream.
|
|
||||||
size_t GetNumberOfEvents() const;
|
|
||||||
|
|
||||||
// Reads the arrival timestamp (in microseconds) from a rtclog::Event.
|
|
||||||
int64_t GetTimestamp(size_t index) const;
|
|
||||||
int64_t GetTimestamp(const rtclog::Event& event) const;
|
|
||||||
|
|
||||||
// Reads the event type of the rtclog::Event at |index|.
|
|
||||||
EventType GetEventType(size_t index) const;
|
|
||||||
EventType GetEventType(const rtclog::Event& event) const;
|
|
||||||
|
|
||||||
// Reads the header, direction, header length and packet length from the RTP
|
|
||||||
// event at |index|, and stores the values in the corresponding output
|
|
||||||
// parameters. Each output parameter can be set to nullptr if that value
|
|
||||||
// isn't needed.
|
|
||||||
// NB: The header must have space for at least IP_PACKET_SIZE bytes.
|
|
||||||
// Returns: a pointer to a header extensions map acquired from parsing
|
|
||||||
// corresponding Audio/Video Sender/Receiver config events.
|
|
||||||
// Warning: if the same SSRC is reused by both video and audio streams during
|
|
||||||
// call, extensions maps may be incorrect (the last one would be returned).
|
|
||||||
const webrtc::RtpHeaderExtensionMap* GetRtpHeader(
|
|
||||||
size_t index,
|
|
||||||
PacketDirection* incoming,
|
|
||||||
uint8_t* header,
|
|
||||||
size_t* header_length,
|
|
||||||
size_t* total_length,
|
|
||||||
int* probe_cluster_id) const;
|
|
||||||
const webrtc::RtpHeaderExtensionMap* GetRtpHeader(
|
|
||||||
const rtclog::Event& event,
|
|
||||||
PacketDirection* incoming,
|
|
||||||
uint8_t* header,
|
|
||||||
size_t* header_length,
|
|
||||||
size_t* total_length,
|
|
||||||
int* probe_cluster_id) const;
|
|
||||||
|
|
||||||
// Reads packet, direction and packet length from the RTCP event at |index|,
|
|
||||||
// and stores the values in the corresponding output parameters.
|
|
||||||
// Each output parameter can be set to nullptr if that value isn't needed.
|
|
||||||
// NB: The packet must have space for at least IP_PACKET_SIZE bytes.
|
|
||||||
void GetRtcpPacket(size_t index,
|
|
||||||
PacketDirection* incoming,
|
|
||||||
uint8_t* packet,
|
|
||||||
size_t* length) const;
|
|
||||||
void GetRtcpPacket(const rtclog::Event& event,
|
|
||||||
PacketDirection* incoming,
|
|
||||||
uint8_t* packet,
|
|
||||||
size_t* length) const;
|
|
||||||
|
|
||||||
// Reads a video receive config event to a StreamConfig struct.
|
|
||||||
// Only the fields that are stored in the protobuf will be written.
|
|
||||||
rtclog::StreamConfig GetVideoReceiveConfig(size_t index) const;
|
|
||||||
|
|
||||||
// Reads a video send config event to a StreamConfig struct. If the proto
|
|
||||||
// contains multiple SSRCs and RTX SSRCs (this used to be the case for
|
|
||||||
// simulcast streams) then we return one StreamConfig per SSRC,RTX_SSRC pair.
|
|
||||||
// Only the fields that are stored in the protobuf will be written.
|
|
||||||
std::vector<rtclog::StreamConfig> GetVideoSendConfig(size_t index) const;
|
|
||||||
|
|
||||||
// Reads a audio receive config event to a StreamConfig struct.
|
|
||||||
// Only the fields that are stored in the protobuf will be written.
|
|
||||||
rtclog::StreamConfig GetAudioReceiveConfig(size_t index) const;
|
|
||||||
|
|
||||||
// Reads a config event to a StreamConfig struct.
|
|
||||||
// Only the fields that are stored in the protobuf will be written.
|
|
||||||
rtclog::StreamConfig GetAudioSendConfig(size_t index) const;
|
|
||||||
|
|
||||||
// Reads the SSRC from the audio playout event at |index|. The SSRC is stored
|
|
||||||
// in the output parameter ssrc. The output parameter can be set to nullptr
|
|
||||||
// and in that case the function only asserts that the event is well formed.
|
|
||||||
LoggedAudioPlayoutEvent GetAudioPlayout(size_t index) const;
|
|
||||||
|
|
||||||
// Reads bitrate, fraction loss (as defined in RFC 1889) and total number of
|
|
||||||
// expected packets from the loss based BWE event at |index| and stores the
|
|
||||||
// values in
|
|
||||||
// the corresponding output parameters. Each output parameter can be set to
|
|
||||||
// nullptr if that
|
|
||||||
// value isn't needed.
|
|
||||||
LoggedBweLossBasedUpdate GetLossBasedBweUpdate(size_t index) const;
|
|
||||||
|
|
||||||
// Reads bitrate and detector_state from the delay based BWE event at |index|
|
|
||||||
// and stores the values in the corresponding output parameters. Each output
|
|
||||||
// parameter can be set to nullptr if that
|
|
||||||
// value isn't needed.
|
|
||||||
LoggedBweDelayBasedUpdate GetDelayBasedBweUpdate(size_t index) const;
|
|
||||||
|
|
||||||
// Reads a audio network adaptation event to a (non-NULL)
|
|
||||||
// AudioEncoderRuntimeConfig struct. Only the fields that are
|
|
||||||
// stored in the protobuf will be written.
|
|
||||||
LoggedAudioNetworkAdaptationEvent GetAudioNetworkAdaptation(
|
|
||||||
size_t index) const;
|
|
||||||
|
|
||||||
LoggedBweProbeClusterCreatedEvent GetBweProbeClusterCreated(
|
|
||||||
size_t index) const;
|
|
||||||
|
|
||||||
LoggedBweProbeFailureEvent GetBweProbeFailure(size_t index) const;
|
|
||||||
LoggedBweProbeSuccessEvent GetBweProbeSuccess(size_t index) const;
|
|
||||||
|
|
||||||
MediaType GetMediaType(uint32_t ssrc, PacketDirection direction) const;
|
MediaType GetMediaType(uint32_t ssrc, PacketDirection direction) const;
|
||||||
|
|
||||||
LoggedAlrStateEvent GetAlrState(size_t index) const;
|
|
||||||
|
|
||||||
LoggedIceCandidatePairConfig GetIceCandidatePairConfig(size_t index) const;
|
|
||||||
|
|
||||||
LoggedIceCandidatePairEvent GetIceCandidatePairEvent(size_t index) const;
|
|
||||||
|
|
||||||
// Configured SSRCs.
|
// Configured SSRCs.
|
||||||
const std::set<uint32_t>& incoming_rtx_ssrcs() const {
|
const std::set<uint32_t>& incoming_rtx_ssrcs() const {
|
||||||
return incoming_rtx_ssrcs_;
|
return incoming_rtx_ssrcs_;
|
||||||
@ -978,6 +853,35 @@ class ParsedRtcEventLogNew {
|
|||||||
|
|
||||||
void StoreParsedLegacyEvent(const rtclog::Event& event);
|
void StoreParsedLegacyEvent(const rtclog::Event& event);
|
||||||
|
|
||||||
|
// Reads the arrival timestamp (in microseconds) from a rtclog::Event.
|
||||||
|
int64_t GetTimestamp(const rtclog::Event& event) const;
|
||||||
|
|
||||||
|
// Reads the header, direction, header length and packet length from the RTP
|
||||||
|
// event at |index|, and stores the values in the corresponding output
|
||||||
|
// parameters. Each output parameter can be set to nullptr if that value
|
||||||
|
// isn't needed.
|
||||||
|
// NB: The header must have space for at least IP_PACKET_SIZE bytes.
|
||||||
|
// Returns: a pointer to a header extensions map acquired from parsing
|
||||||
|
// corresponding Audio/Video Sender/Receiver config events.
|
||||||
|
// Warning: if the same SSRC is reused by both video and audio streams during
|
||||||
|
// call, extensions maps may be incorrect (the last one would be returned).
|
||||||
|
const webrtc::RtpHeaderExtensionMap* GetRtpHeader(
|
||||||
|
const rtclog::Event& event,
|
||||||
|
PacketDirection* incoming,
|
||||||
|
uint8_t* header,
|
||||||
|
size_t* header_length,
|
||||||
|
size_t* total_length,
|
||||||
|
int* probe_cluster_id) const;
|
||||||
|
|
||||||
|
// Reads packet, direction and packet length from the RTCP event at |index|,
|
||||||
|
// and stores the values in the corresponding output parameters.
|
||||||
|
// Each output parameter can be set to nullptr if that value isn't needed.
|
||||||
|
// NB: The packet must have space for at least IP_PACKET_SIZE bytes.
|
||||||
|
void GetRtcpPacket(const rtclog::Event& event,
|
||||||
|
PacketDirection* incoming,
|
||||||
|
uint8_t* packet,
|
||||||
|
size_t* length) const;
|
||||||
|
|
||||||
rtclog::StreamConfig GetVideoReceiveConfig(const rtclog::Event& event) const;
|
rtclog::StreamConfig GetVideoReceiveConfig(const rtclog::Event& event) const;
|
||||||
std::vector<rtclog::StreamConfig> GetVideoSendConfig(
|
std::vector<rtclog::StreamConfig> GetVideoSendConfig(
|
||||||
const rtclog::Event& event) const;
|
const rtclog::Event& event) const;
|
||||||
@ -1008,9 +912,6 @@ class ParsedRtcEventLogNew {
|
|||||||
LoggedIceCandidatePairEvent GetIceCandidatePairEvent(
|
LoggedIceCandidatePairEvent GetIceCandidatePairEvent(
|
||||||
const rtclog::Event& event) const;
|
const rtclog::Event& event) const;
|
||||||
|
|
||||||
// TODO(terelius): Remove
|
|
||||||
std::vector<rtclog::Event> events_;
|
|
||||||
|
|
||||||
// Parsing functions for new format.
|
// Parsing functions for new format.
|
||||||
void StoreParsedNewFormatEvent(const rtclog2::EventStream& event);
|
void StoreParsedNewFormatEvent(const rtclog2::EventStream& event);
|
||||||
void StoreIncomingRtpPackets(const rtclog2::IncomingRtpPackets& proto);
|
void StoreIncomingRtpPackets(const rtclog2::IncomingRtpPackets& proto);
|
||||||
|
@ -252,9 +252,7 @@ int main(int argc, char* argv[]) {
|
|||||||
|
|
||||||
if (!parsed_log.ParseFile(filename)) {
|
if (!parsed_log.ParseFile(filename)) {
|
||||||
std::cerr << "Could not parse the entire log file." << std::endl;
|
std::cerr << "Could not parse the entire log file." << std::endl;
|
||||||
std::cerr << "Proceeding to analyze the first "
|
std::cerr << "Only the parsable events will be analyzed." << std::endl;
|
||||||
<< parsed_log.GetNumberOfEvents() << " events in the file."
|
|
||||||
<< std::endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
webrtc::EventLogAnalyzer analyzer(parsed_log, FLAG_normalize_time);
|
webrtc::EventLogAnalyzer analyzer(parsed_log, FLAG_normalize_time);
|
||||||
|
Reference in New Issue
Block a user