| Index: webrtc/logging/rtc_event_log/rtc_event_log_parser.h
|
| diff --git a/webrtc/logging/rtc_event_log/rtc_event_log_parser.h b/webrtc/logging/rtc_event_log/rtc_event_log_parser.h
|
| index 7a17f32d27715a0b78c9eb37941dd7288dd58521..58e0dc2b3f5b0f218461551e6485c0ddf4cd0101 100644
|
| --- a/webrtc/logging/rtc_event_log/rtc_event_log_parser.h
|
| +++ b/webrtc/logging/rtc_event_log/rtc_event_log_parser.h
|
| @@ -10,11 +10,15 @@
|
| #ifndef WEBRTC_LOGGING_RTC_EVENT_LOG_RTC_EVENT_LOG_PARSER_H_
|
| #define WEBRTC_LOGGING_RTC_EVENT_LOG_RTC_EVENT_LOG_PARSER_H_
|
|
|
| +#include <map>
|
| #include <string>
|
| +#include <utility> // pair
|
| #include <vector>
|
|
|
| #include "webrtc/base/ignore_wundef.h"
|
| #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
|
| +#include "webrtc/modules/rtp_rtcp/source/byte_io.h"
|
| +#include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h"
|
| #include "webrtc/video_receive_stream.h"
|
| #include "webrtc/video_send_stream.h"
|
|
|
| @@ -99,11 +103,15 @@ class ParsedRtcEventLog {
|
| // 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.
|
| - void GetRtpHeader(size_t index,
|
| - PacketDirection* incoming,
|
| - uint8_t* header,
|
| - size_t* header_length,
|
| - size_t* total_length) const;
|
| + // 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).
|
| + webrtc::RtpHeaderExtensionMap* GetRtpHeader(size_t index,
|
| + PacketDirection* incoming,
|
| + uint8_t* header,
|
| + size_t* header_length,
|
| + size_t* total_length) const;
|
|
|
| // Reads packet, direction and packet length from the RTCP event at |index|,
|
| // and stores the values in the corresponding output parameters.
|
| @@ -178,15 +186,25 @@ class ParsedRtcEventLog {
|
| struct Stream {
|
| Stream(uint32_t ssrc,
|
| MediaType media_type,
|
| - webrtc::PacketDirection direction)
|
| - : ssrc(ssrc), media_type(media_type), direction(direction) {}
|
| + webrtc::PacketDirection direction,
|
| + webrtc::RtpHeaderExtensionMap map)
|
| + : ssrc(ssrc),
|
| + media_type(media_type),
|
| + direction(direction),
|
| + rtp_extensions_map(map) {}
|
| uint32_t ssrc;
|
| MediaType media_type;
|
| webrtc::PacketDirection direction;
|
| + webrtc::RtpHeaderExtensionMap rtp_extensions_map;
|
| };
|
|
|
| // All configured streams found in the event log.
|
| std::vector<Stream> streams_;
|
| +
|
| + // To find configured extensions map for given stream, what are needed to
|
| + // parse a header.
|
| + typedef std::pair<uint32_t, webrtc::PacketDirection> StreamId;
|
| + std::map<StreamId, webrtc::RtpHeaderExtensionMap*> rtp_extensions_maps_;
|
| };
|
|
|
| } // namespace webrtc
|
|
|