Index: webrtc/modules/rtp_rtcp/include/receive_statistics.h |
diff --git a/webrtc/modules/rtp_rtcp/include/receive_statistics.h b/webrtc/modules/rtp_rtcp/include/receive_statistics.h |
index 90a848ad6335bd7584a67e013b2d7e7c7a7d820f..e77e7a9f23a93975c6e4e8a427d8cb3aa0233606 100644 |
--- a/webrtc/modules/rtp_rtcp/include/receive_statistics.h |
+++ b/webrtc/modules/rtp_rtcp/include/receive_statistics.h |
@@ -12,15 +12,27 @@ |
#define WEBRTC_MODULES_RTP_RTCP_INCLUDE_RECEIVE_STATISTICS_H_ |
#include <map> |
+#include <vector> |
#include "webrtc/modules/include/module.h" |
#include "webrtc/modules/include/module_common_types.h" |
+#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/report_block.h" |
#include "webrtc/typedefs.h" |
namespace webrtc { |
class Clock; |
+class ReceiveStatisticsReporter { |
+ public: |
+ // Fill in statistic fields of the rtcp report blocks for the active ssrcs. |
+ // (i.e. everything except last_sr/delay_since_last_sr fields) |
+ virtual std::vector<rtcp::ReportBlock> GetActiveStatistics() = 0; |
+ |
+ protected: |
+ ~ReceiveStatisticsReporter() = default; |
+}; |
+ |
class StreamStatistician { |
public: |
virtual ~StreamStatistician(); |
@@ -46,7 +58,7 @@ class StreamStatistician { |
typedef std::map<uint32_t, StreamStatistician*> StatisticianMap; |
-class ReceiveStatistics { |
+class ReceiveStatistics : public ReceiveStatisticsReporter { |
public: |
virtual ~ReceiveStatistics() {} |
@@ -78,6 +90,9 @@ class ReceiveStatistics { |
// Called on new RTP stats creation. |
virtual void RegisterRtpStatisticsCallback( |
StreamDataCountersCallback* callback) = 0; |
+ |
+ // TODO(danilchap): Remove other accessors and make this one pure virtual. |
+ std::vector<rtcp::ReportBlock> GetActiveStatistics() override; |
}; |
class NullReceiveStatistics : public ReceiveStatistics { |