| Index: webrtc/tools/event_log_visualizer/analyzer.h
|
| diff --git a/webrtc/tools/event_log_visualizer/analyzer.h b/webrtc/tools/event_log_visualizer/analyzer.h
|
| index bb4db2b824825240c7738b224aff5acf15993fea..f184def855a680eed3f627921bb213f40ddf8639 100644
|
| --- a/webrtc/tools/event_log_visualizer/analyzer.h
|
| +++ b/webrtc/tools/event_log_visualizer/analyzer.h
|
| @@ -14,6 +14,7 @@
|
| #include <vector>
|
| #include <map>
|
| #include <memory>
|
| +#include <set>
|
| #include <utility>
|
|
|
| #include "webrtc/call/rtc_event_log_parser.h"
|
| @@ -52,8 +53,14 @@ class EventLogAnalyzer {
|
| public:
|
| StreamId(uint32_t ssrc, webrtc::PacketDirection direction)
|
| : ssrc_(ssrc), direction_(direction) {}
|
| - bool operator<(const StreamId& other) const;
|
| - bool operator==(const StreamId& other) const;
|
| + bool operator<(const StreamId& other) const {
|
| + return std::tie(ssrc_, direction_) <
|
| + std::tie(other.ssrc_, other.direction_);
|
| + }
|
| + bool operator==(const StreamId& other) const {
|
| + return std::tie(ssrc_, direction_) ==
|
| + std::tie(other.ssrc_, other.direction_);
|
| + }
|
| uint32_t GetSsrc() const { return ssrc_; }
|
| webrtc::PacketDirection GetDirection() const { return direction_; }
|
|
|
| @@ -89,15 +96,30 @@ class EventLogAnalyzer {
|
| int32_t expected_packets;
|
| };
|
|
|
| + bool IsRtxSsrc(StreamId stream_id);
|
| +
|
| + bool IsVideoSsrc(StreamId stream_id);
|
| +
|
| + bool IsAudioSsrc(StreamId stream_id);
|
| +
|
| const ParsedRtcEventLog& parsed_log_;
|
|
|
| // A list of SSRCs we are interested in analysing.
|
| // If left empty, all SSRCs will be considered relevant.
|
| std::vector<uint32_t> desired_ssrc_;
|
|
|
| - // Maps a stream identifier consisting of ssrc, direction and MediaType
|
| - // to the parsed RTP headers in that stream. Header extensions are parsed
|
| - // if the stream has been configured.
|
| + // Tracks what each stream is configured for. Note that a single SSRC can be
|
| + // in several sets. For example, the SSRC used for sending video over RTX
|
| + // will appear in both video_ssrcs_ and rtx_ssrcs_. In the unlikely case that
|
| + // an SSRC is reconfigured to a different media type mid-call, it will also
|
| + // appear in multiple sets.
|
| + std::set<StreamId> rtx_ssrcs_;
|
| + std::set<StreamId> video_ssrcs_;
|
| + std::set<StreamId> audio_ssrcs_;
|
| +
|
| + // Maps a stream identifier consisting of ssrc and direction to the parsed
|
| + // RTP headers in that stream. Header extensions are parsed if the stream
|
| + // has been configured.
|
| std::map<StreamId, std::vector<LoggedRtpPacket>> rtp_packets_;
|
|
|
| std::map<StreamId, std::vector<LoggedRtcpPacket>> rtcp_packets_;
|
|
|