adjusted play rate by adding sleep to the player if message timestamp is in the future

This commit is contained in:
amit bezalel
2017-07-14 17:57:22 +03:00
parent 01f050ae21
commit 680859b0ad
4 changed files with 9 additions and 5 deletions

View File

@@ -13,7 +13,7 @@ import (
type FbsReader struct {
reader io.Reader
buffer bytes.Buffer
currentTimestamp uint32
currentTimestamp int
pixelFormat *common.PixelFormat
encodings []common.Encoding
}
@@ -26,7 +26,7 @@ func (fbs *FbsReader) Read(p []byte) (n int, err error) {
return 0, err
}
fbs.buffer.Write(seg.bytes)
fbs.currentTimestamp = seg.timestamp
fbs.currentTimestamp = int(seg.timestamp)
}
return fbs.buffer.Read(p)
}

View File

@@ -68,6 +68,12 @@ func (h *ServerMessageHandler) sendFbsMessage() {
logger.Error("TestServer.NewConnHandler: Error unknown message type: ", messageType)
return
}
timeSinceStart := int(time.Now().UnixNano()/int64(time.Millisecond)) - h.startTime
timeToSleep := fbs.currentTimestamp - timeSinceStart
if timeToSleep > 0 {
time.Sleep(time.Duration(timeToSleep) * time.Millisecond)
}
err = msg.CopyTo(fbs, h.Conn, fbs)
if err != nil {
logger.Error("TestServer.NewConnHandler: Error in reading FBS segment: ", err)