Merged in fix-encoder-timing (pull request #147)

stream/mts & stream/rtp: fixed timing calculations
This commit is contained in:
Saxon Milton 2019-02-15 22:46:30 +00:00
commit 725b40b114
2 changed files with 8 additions and 2 deletions

View File

@ -122,6 +122,7 @@ type Encoder struct {
dst io.Writer dst io.Writer
clock time.Duration clock time.Duration
lastTime time.Time
frameInterval time.Duration frameInterval time.Duration
ptsOffset time.Duration ptsOffset time.Duration
tsSpace [PacketSize]byte tsSpace [PacketSize]byte
@ -247,7 +248,9 @@ func (e *Encoder) writePSI() error {
// tick advances the clock one frame interval. // tick advances the clock one frame interval.
func (e *Encoder) tick() { func (e *Encoder) tick() {
e.clock += e.frameInterval now := time.Now()
e.clock += now.Sub(e.lastTime)
e.lastTime = now
} }
// pts retuns the current presentation timestamp. // pts retuns the current presentation timestamp.

View File

@ -51,6 +51,7 @@ type Encoder struct {
seqNo uint16 seqNo uint16
clock time.Duration clock time.Duration
frameInterval time.Duration frameInterval time.Duration
lastTime time.Time
fps int fps int
buffer []byte buffer []byte
pktSpace [defPktSize]byte pktSpace [defPktSize]byte
@ -120,7 +121,9 @@ func (e *Encoder) Encode(payload []byte) error {
// tick advances the clock one frame interval. // tick advances the clock one frame interval.
func (e *Encoder) tick() { func (e *Encoder) tick() {
e.clock += e.frameInterval now := time.Now()
e.clock += now.Sub(e.lastTime)
e.lastTime = now
} }
// nxtTimestamp gets the next timestamp // nxtTimestamp gets the next timestamp