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

@ -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

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)

View File

@ -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 {