Move stats ID generation from SSRC to local ID

This generates stats IDs for Track stats (which
represents stats on the attachment of a track to
a PeerConnection) from being SSRC-based to being
based on an ID that is allocated when connecting the
track to the PC.

This is a prerequisite to generating stats before
the PeerConnection is connected.

Bug: webrtc:8673
Change-Id: I82f6e521646b0c92b3af4dffb2cdee75e6dc10d4
Reviewed-on: https://webrtc-review.googlesource.com/38360
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21582}
This commit is contained in:
Harald Alvestrand
2018-01-11 13:47:59 +01:00
committed by Commit Bot
parent 6ad9f26975
commit e357a4dd4e
14 changed files with 263 additions and 247 deletions

View File

@ -127,6 +127,13 @@ class RtpReceiverInterface : public rtc::RefCountInterface {
virtual std::vector<RtpSource> GetSources() const {
return std::vector<RtpSource>();
}
// TODO(hta): Remove default implementation or move function to
// an internal interface. content::FakeRtpReceiver in Chromium needs this.
// Returns an ID that changes if the attached track changes, but
// otherwise remains constant. Used to generate IDs for stats.
// The special value zero means that no track is attached.
virtual int AttachmentId() const { return 0; }
protected:
virtual ~RtpReceiverInterface() {}
@ -146,6 +153,7 @@ BEGIN_SIGNALING_PROXY_MAP(RtpReceiver)
PROXY_METHOD1(bool, SetParameters, const RtpParameters&)
PROXY_METHOD1(void, SetObserver, RtpReceiverObserverInterface*);
PROXY_CONSTMETHOD0(std::vector<RtpSource>, GetSources);
PROXY_CONSTMETHOD0(int, AttachmentId);
END_PROXY_MAP()
} // namespace webrtc