1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-11-22 08:35:57 +01:00

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 var rate, packetRate uint32
if jiffies >= rtptime.JiffiesPerSec/1000 { if jiffies >= rtptime.JiffiesPerSec/1000 {
rate = uint32(uint64(bytes) * rtptime.JiffiesPerSec / jiffies) rate = uint32((uint64(bytes)*rtptime.JiffiesPerSec + jiffies/2) / jiffies)
packetRate = packetRate = uint32((uint64(packets)*rtptime.JiffiesPerSec + jiffies/2) / jiffies)
uint32(uint64(packets) * rtptime.JiffiesPerSec / jiffies)
} }
atomic.StoreUint32(&e.rate, rate) atomic.StoreUint32(&e.rate, rate)
atomic.StoreUint32(&e.packetRate, packetRate) atomic.StoreUint32(&e.packetRate, packetRate)

View file

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