summaryrefslogtreecommitdiff
path: root/vendor/github.com/pion/interceptor/pkg/report/sender_stream.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pion/interceptor/pkg/report/sender_stream.go')
-rw-r--r--vendor/github.com/pion/interceptor/pkg/report/sender_stream.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/github.com/pion/interceptor/pkg/report/sender_stream.go b/vendor/github.com/pion/interceptor/pkg/report/sender_stream.go
new file mode 100644
index 0000000..851d70e
--- /dev/null
+++ b/vendor/github.com/pion/interceptor/pkg/report/sender_stream.go
@@ -0,0 +1,37 @@
+package report
+
+import (
+ "sync"
+ "time"
+
+ "github.com/pion/rtp"
+)
+
+type senderStream struct {
+ clockRate float64
+ m sync.Mutex
+
+ // data from rtp packets
+ lastRTPTimeRTP uint32
+ lastRTPTimeTime time.Time
+ packetCount uint32
+ octetCount uint32
+}
+
+func newSenderStream(clockRate uint32) *senderStream {
+ return &senderStream{
+ clockRate: float64(clockRate),
+ }
+}
+
+func (stream *senderStream) processRTP(now time.Time, header *rtp.Header, payload []byte) {
+ stream.m.Lock()
+ defer stream.m.Unlock()
+
+ // always update time to minimize errors
+ stream.lastRTPTimeRTP = header.Timestamp
+ stream.lastRTPTimeTime = now
+
+ stream.packetCount++
+ stream.octetCount += uint32(len(payload))
+}