From b95503e596d351f1b6aa4bd0fac19202f3ed9189 Mon Sep 17 00:00:00 2001 From: george82 Date: Mon, 21 Feb 2005 17:02:34 +0000 Subject: [PATCH] Added imageDataStartTime variable which used for setting time pos. Time pos can't be less than imageDataStartTime. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@210 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- rfbplayer/rfbplayer.cxx | 9 ++++++--- rfbplayer/rfbplayer.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx index 72614f17..fac91815 100644 --- a/rfbplayer/rfbplayer.cxx +++ b/rfbplayer/rfbplayer.cxx @@ -226,7 +226,7 @@ RfbPlayer::RfbPlayer(char *_fileName, int _depth = DEPTH_AUTO, seekMode(false), fileName(_fileName), lastPos(0), timeStatic(0), speedEdit(0), posTrackBar(0), speedUpDown(0), acceptBell(_acceptBell), rfbReader(0), sessionTimeMs(0), sliderDraging(false), sliderStepMs(0), - loopPlayback(false) { + loopPlayback(false), imageDataStartTime(0) { CTRL_BAR_HEIGHT = 28; @@ -824,7 +824,7 @@ void RfbPlayer::processMsg() { // It's a special exception to perform backward seeking. // We only rewind the stream and seek the offset if (strcmp(e.str(), "[REWIND]") == 0) { - long seekOffset = getSeekOffset(); + long seekOffset = max(getSeekOffset(), imageDataStartTime); rewind(); setPos(seekOffset); updatePos(seekOffset); @@ -838,6 +838,9 @@ void RfbPlayer::processMsg() { void RfbPlayer::serverInit() { RfbProto::serverInit(); + // Save the image data start time + imageDataStartTime = is->getTimeOffset(); + // Resize the backing buffer buffer->setSize(cp.width, cp.height); @@ -1075,7 +1078,7 @@ double RfbPlayer::getSpeed() { } void RfbPlayer::setPos(long pos) { - is->setTimeOffset(max(pos, 0)); + is->setTimeOffset(max(pos, imageDataStartTime)); } long RfbPlayer::getSeekOffset() { diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h index e148f146..dea26ec3 100644 --- a/rfbplayer/rfbplayer.h +++ b/rfbplayer/rfbplayer.h @@ -172,6 +172,7 @@ class RfbPlayer : public RfbProto { bool autoplay; int colourDepth; double playbackSpeed; + long imageDataStartTime; long initTime; bool acceptBell; long sessionTimeMs; -- 2.39.5