RTCCodecStats[1] added.
RTCStatsCollector supports "payloadType", "codec" and "clockRate".
"channels", "parameters" and "implementation" need to be supported
before closing crbug.com/659117.
[1] https://w3c.github.io/webrtc-stats/#codec-dict*
BUG=chromium:659117, chromium:627816, chromium:657854
NOTRY=True
Review-Url: https://codereview.webrtc.org/2509803004
Cr-Commit-Position: refs/heads/master@{#15207}
diff --git a/webrtc/api/rtcstatscollector.h b/webrtc/api/rtcstatscollector.h
index 08bab80..c32d65f 100644
--- a/webrtc/api/rtcstatscollector.h
+++ b/webrtc/api/rtcstatscollector.h
@@ -21,11 +21,13 @@
#include "webrtc/api/stats/rtcstats_objects.h"
#include "webrtc/api/stats/rtcstatsreport.h"
#include "webrtc/base/asyncinvoker.h"
+#include "webrtc/base/optional.h"
#include "webrtc/base/refcount.h"
#include "webrtc/base/scoped_ref_ptr.h"
#include "webrtc/base/sigslot.h"
#include "webrtc/base/sslidentity.h"
#include "webrtc/base/timeutils.h"
+#include "webrtc/media/base/mediachannel.h"
namespace cricket {
class Candidate;
@@ -86,6 +88,10 @@
std::unique_ptr<rtc::SSLCertificateStats> local;
std::unique_ptr<rtc::SSLCertificateStats> remote;
};
+ struct MediaInfo {
+ rtc::Optional<cricket::VoiceMediaInfo> voice;
+ rtc::Optional<cricket::VideoMediaInfo> video;
+ };
void AddPartialResults_s(rtc::scoped_refptr<RTCStatsReport> partial_report);
void DeliverCachedReport();
@@ -95,6 +101,10 @@
int64_t timestamp_us,
const std::map<std::string, CertificateStatsPair>& transport_cert_stats,
RTCStatsReport* report) const;
+ // Produces |RTCCodecStats|.
+ void ProduceCodecStats_s(
+ int64_t timestamp_us, const MediaInfo& media_info,
+ RTCStatsReport* report) const;
// Produces |RTCDataChannelStats|.
void ProduceDataChannelStats_s(
int64_t timestamp_us, RTCStatsReport* report) const;
@@ -111,7 +121,7 @@
// Produces |RTCInboundRTPStreamStats| and |RTCOutboundRTPStreamStats|.
void ProduceRTPStreamStats_s(
int64_t timestamp_us, const SessionStats& session_stats,
- RTCStatsReport* report) const;
+ const MediaInfo& media_info, RTCStatsReport* report) const;
// Produces |RTCTransportStats|.
void ProduceTransportStats_s(
int64_t timestamp_us, const SessionStats& session_stats,
@@ -120,7 +130,8 @@
// Helper function to stats-producing functions.
std::map<std::string, CertificateStatsPair>
- PrepareTransportCertificateStats_s(const SessionStats& session_stats) const;
+ PrepareTransportCertificateStats(const SessionStats& session_stats) const;
+ MediaInfo PrepareMediaInfo(const SessionStats& session_stats) const;
// Slots for signals (sigslot) that are wired up to |pc_|.
void OnDataChannelCreated(DataChannel* channel);