1
Fork 0

Fix rounding in estimator.

The test was buggy.
This commit is contained in:
Juliusz Chroboczek 2022-04-20 20:54:37 +02:00
parent 474c58cc7d
commit b5f8ea0e23
2 changed files with 4 additions and 4 deletions

View File

@ -40,9 +40,8 @@ func (e *Estimator) swap(now uint64) {
var rate, packetRate uint32
if jiffies >= rtptime.JiffiesPerSec/1000 {
rate = uint32(uint64(bytes) * rtptime.JiffiesPerSec / jiffies)
packetRate =
uint32(uint64(packets) * rtptime.JiffiesPerSec / jiffies)
rate = uint32((uint64(bytes)*rtptime.JiffiesPerSec + jiffies/2) / jiffies)
packetRate = uint32((uint64(packets)*rtptime.JiffiesPerSec + jiffies/2) / jiffies)
}
atomic.StoreUint32(&e.rate, rate)
atomic.StoreUint32(&e.packetRate, packetRate)

View File

@ -2,13 +2,14 @@ package estimator
import (
"testing"
"time"
"github.com/jech/galene/rtptime"
)
func TestEstimator(t *testing.T) {
now := rtptime.Jiffies()
e := New(rtptime.JiffiesPerSec)
e := New(time.Second)
e.estimate(now)
e.Accumulate(42)