From e12a1c7644b2de30be4316483048feaf810070a3 Mon Sep 17 00:00:00 2001 From: Peter Hanspers Date: Tue, 26 Feb 2019 16:39:48 +0100 Subject: [PATCH] Adding GetStats APIs for senders/receivers. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:10345 Change-Id: Id9c10db91d94323ffe8b9e4e540411837d56aaa4 Reviewed-on: https://webrtc-review.googlesource.com/c/124493 Reviewed-by: Kári Helgason Commit-Queue: Peter Hanspers Cr-Commit-Position: refs/heads/master@{#26867} --- .../peerconnection/RTCPeerConnection+Stats.mm | 16 ++++++++++++++++ sdk/objc/api/peerconnection/RTCPeerConnection.h | 12 ++++++++++++ 2 files changed, 28 insertions(+) diff --git a/sdk/objc/api/peerconnection/RTCPeerConnection+Stats.mm b/sdk/objc/api/peerconnection/RTCPeerConnection+Stats.mm index e035caa2d5..e2965ebab7 100644 --- a/sdk/objc/api/peerconnection/RTCPeerConnection+Stats.mm +++ b/sdk/objc/api/peerconnection/RTCPeerConnection+Stats.mm @@ -12,6 +12,8 @@ #import "RTCLegacyStatsReport+Private.h" #import "RTCMediaStreamTrack+Private.h" +#import "RTCRtpReceiver+Private.h" +#import "RTCRtpSender+Private.h" #import "RTCStatisticsReport+Private.h" #import "helpers/NSString+StdString.h" @@ -63,6 +65,20 @@ class StatsObserverAdapter : public StatsObserver { @implementation RTCPeerConnection (Stats) +- (void)statisticsForSender:(RTCRtpSender *)sender + completionHandler:(RTCStatisticsCompletionHandler)completionHandler { + rtc::scoped_refptr collector( + new rtc::RefCountedObject(completionHandler)); + self.nativePeerConnection->GetStats(sender.nativeRtpSender, collector); +} + +- (void)statisticsForReceiver:(RTCRtpReceiver *)receiver + completionHandler:(RTCStatisticsCompletionHandler)completionHandler { + rtc::scoped_refptr collector( + new rtc::RefCountedObject(completionHandler)); + self.nativePeerConnection->GetStats(receiver.nativeRtpReceiver, collector); +} + - (void)statisticsWithCompletionHandler:(RTCStatisticsCompletionHandler)completionHandler { rtc::scoped_refptr collector( new rtc::RefCountedObject(completionHandler)); diff --git a/sdk/objc/api/peerconnection/RTCPeerConnection.h b/sdk/objc/api/peerconnection/RTCPeerConnection.h index 500a7ceaf5..c641fdd545 100644 --- a/sdk/objc/api/peerconnection/RTCPeerConnection.h +++ b/sdk/objc/api/peerconnection/RTCPeerConnection.h @@ -331,6 +331,18 @@ typedef void (^RTCStatisticsCompletionHandler)(RTCStatisticsReport *); /** Gather statistic through the v2 statistics API. */ - (void)statisticsWithCompletionHandler:(RTCStatisticsCompletionHandler)completionHandler; +/** Spec-compliant getStats() performing the stats selection algorithm with the + * sender. + */ +- (void)statisticsForSender:(RTCRtpSender *)sender + completionHandler:(RTCStatisticsCompletionHandler)completionHandler; + +/** Spec-compliant getStats() performing the stats selection algorithm with the + * receiver. + */ +- (void)statisticsForReceiver:(RTCRtpReceiver *)receiver + completionHandler:(RTCStatisticsCompletionHandler)completionHandler; + @end NS_ASSUME_NONNULL_END