Support GenericPacketReceived/Sent/AckReceived event logs.

This change does not include receive_timestamps for ACKs, because there is 1 problem.
That problem will be resolved in a separate change.

I am getting receive_timestamp errors that have to do with delta compression with optional fields.
Two failure modes that I noticed:
1) the base event does not have the timestamp: it crashes with length validation
# Check failed: base <= MaxUnsignedValueOfBitWidth(params_.value_width_bits()) (1820716 vs. 131071)
2) all events are null, it crashes with assert that X events were expected, but no events were deserialized.


Bug: webrtc:9719
Change-Id: I5d1bbb95dfd15ca7321667aad5e4d89c085e9c06
Reviewed-on: https://webrtc-review.googlesource.com/c/122360
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26668}
This commit is contained in:
Piotr (Peter) Slatala
2019-02-13 07:49:30 -08:00
committed by Commit Bot
parent 975a899ad0
commit 5e2aad1c95
17 changed files with 838 additions and 21 deletions

View File

@ -470,6 +470,17 @@ class ParsedRtcEventLog {
}
}
const std::vector<LoggedGenericPacketReceived>& generic_packets_received() {
return generic_packets_received_;
}
const std::vector<LoggedGenericPacketSent>& generic_packets_sent() {
return generic_packets_sent_;
}
const std::vector<LoggedGenericAckReceived>& generic_acks_received() {
return generic_acks_received_;
}
int64_t first_timestamp() const { return first_timestamp_; }
int64_t last_timestamp() const { return last_timestamp_; }
@ -578,6 +589,10 @@ class ParsedRtcEventLog {
void StoreAudioSendConfig(const rtclog2::AudioSendStreamConfig& proto);
void StoreVideoRecvConfig(const rtclog2::VideoRecvStreamConfig& proto);
void StoreVideoSendConfig(const rtclog2::VideoSendStreamConfig& proto);
void StoreGenericPacketReceivedEvent(
const rtclog2::GenericPacketReceived& proto);
void StoreGenericPacketSentEvent(const rtclog2::GenericPacketSent& proto);
void StoreGenericAckReceivedEvent(const rtclog2::GenericAckReceived& proto);
// End of new parsing functions.
struct Stream {
@ -678,6 +693,10 @@ class ParsedRtcEventLog {
std::vector<LoggedVideoRecvConfig> video_recv_configs_;
std::vector<LoggedVideoSendConfig> video_send_configs_;
std::vector<LoggedGenericPacketReceived> generic_packets_received_;
std::vector<LoggedGenericPacketSent> generic_packets_sent_;
std::vector<LoggedGenericAckReceived> generic_acks_received_;
uint8_t last_incoming_rtcp_packet_[IP_PACKET_SIZE];
uint8_t last_incoming_rtcp_packet_length_;