mirror of
https://github.com/amitbet/vncproxy.git
synced 2025-08-27 17:48:37 +00:00
adjusted play rate by adding sleep to the player if message timestamp is in the future
This commit is contained in:
parent
01f050ae21
commit
680859b0ad
@ -102,9 +102,7 @@ func (fbm *FramebufferUpdateMessage) Read(c common.IClientConn, r *common.RfbRea
|
||||
logger.Errorf("unsupported encoding type: %d, %s", encodingTypeInt, encType)
|
||||
return nil, fmt.Errorf("unsupported encoding type: %d, %s", encodingTypeInt, encType)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return &FramebufferUpdateMessage{rects}, nil
|
||||
|
@ -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)
|
||||
|
@ -36,7 +36,7 @@ func NewRecorder(saveFilePath string) *Recorder {
|
||||
rec := Recorder{RBSFileName: saveFilePath, startTime: getNowMillisec()}
|
||||
var err error
|
||||
|
||||
rec.maxWriteSize = 65536
|
||||
rec.maxWriteSize = 65535
|
||||
|
||||
rec.writer, err = os.OpenFile(saveFilePath, os.O_RDWR|os.O_CREATE, 0755)
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user