mirror of
https://github.com/amitbet/vncproxy.git
synced 2025-09-17 23:29:10 +00:00
adjusted play rate by adding sleep to the player if message timestamp is in the future
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user