Skip to content

Commit

Permalink
add some tests to ntp timestamp conversion
Browse files Browse the repository at this point in the history
Relates to #15
  • Loading branch information
wdouglass committed Mar 27, 2019
1 parent 895dcd9 commit 8386561
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 4 deletions.
8 changes: 4 additions & 4 deletions packetizer.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ func NewPacketizer(mtu int, pt uint8, ssrc uint32, payloader Payloader, sequence
}
}

func toNtpTime(t time.Time) int64 {
var s int64
var f int64
u := t.UnixNano()
func toNtpTime(t time.Time) uint64 {
var s uint64
var f uint64
u := uint64(t.UnixNano())
s = u / 1e9
s += 0x83AA7E80 //offset in seconds between unix epoch and ntp epoch
f = u % 1e9
Expand Down
26 changes: 26 additions & 0 deletions packetizer_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package rtp

import (
"testing"
"time"

"github.com/stretchr/testify/assert"
)

func TestNtpConversion(t *testing.T) {
loc := time.FixedZone("UTC-5", -5*60*60)

tests := []struct {
t time.Time
n uint64
}{
{t: time.Date(1985, time.June, 23, 4, 0, 0, 0, loc), n: 0xa0c65b1000000000},
{t: time.Date(1999, time.December, 31, 23, 59, 59, 500000, loc), n: 0xbc18084f0020c49b},
{t: time.Date(2019, time.March, 27, 13, 39, 30, 8675309, loc), n: 0xe04641e202388b88},
}

for _, in := range tests {
out := toNtpTime(in.t)
assert.Equal(t, in.n, out)
}
}

0 comments on commit 8386561

Please sign in to comment.