#define VSNPRINTF _vsnprintf
#define STRCASECMP _stricmp
#define STRCASESTR StrStrI
- #define STRTOULL _strtoui64
+/* #define STRTOULL _strtoui64 */
#define CLOSESOCKET closesocket
#else
#define VSNPRINTF vsnprintf
#define STRCASECMP strcasecmp
#define STRCASESTR strcasestr
- #define STRTOULL strtoull
+ #define STRTOUL strtoul
#define CLOSESOCKET close
#endif
return 1;
}
-void Player::setPosition(ULLONG position)
+void Player::setStartFrame(ULONG startFrame)
{
- feedPosition = position;
+ startFrameNum = startFrame;
+ if (startFrameNum)
+ {
+ feedPosition = VDR::getInstance()->positionFromFrameNumber(startFrameNum);
+ }
+ else
+ {
+ feedPosition = 0;
+ }
}
void Player::setLengthBytes(ULLONG length)
audio->reset();
video->reset();
demuxer->reset();
- demuxer->setFrameNum(0);
+ if (startFrameNum > lengthFrames) startFrameNum = 0;
+ demuxer->setFrameNum(startFrameNum);
if (!isRadio) demuxer->seek();
videoStartup = true;
int init();
int shutdown();
- void setPosition(ULLONG position);
+ void setStartFrame(ULONG frameNum);
void setLengthBytes(ULLONG length);
void setLengthFrames(ULONG length);
void lock();
void unLock();
-// ULLONG endTS;
+ ULONG startFrameNum;
ULLONG lengthBytes;
ULONG lengthFrames;
ULLONG feedPosition;
return eventList;
}
-ULLONG VDR::getResumePoint(char* fileName)
+ULONG VDR::getResumePoint(char* fileName)
{
if (!connected) return 0;
char* resumeString = configLoad("ResumeData", fileName);
if (!resumeString) return 0;
- ULLONG toReturn = STRTOULL(resumeString, NULL, 10);
+ ULONG toReturn = STRTOUL(resumeString, NULL, 10);
delete[] resumeString;
return toReturn;
}
int connect();
void disconnect();
bool isConnected() { return connected; }
- ULLONG getResumePoint(char* fileName); // uses configLoad
+ ULONG getResumePoint(char* fileName); // uses configLoad
void setReceiveWindow(size_t size);
View::draw();
}
-void VVideoRec::go(ULLONG startPosition)
+void VVideoRec::go(ULONG startFrameNum)
{
- Log::getInstance()->log("VVideoRec", Log::DEBUG, "Starting stream: %s", myRec->getFileName());
+ Log::getInstance()->log("VVideoRec", Log::DEBUG, "Starting stream: %s at frame: %lu", myRec->getFileName(), startFrameNum);
ULONG lengthFrames = 0;
ULLONG lengthBytes = vdr->streamRecording(myRec->getFileName(), &lengthFrames);
if (lengthBytes)
doBar(0);
player->setLengthBytes(lengthBytes);
player->setLengthFrames(lengthFrames);
- player->setPosition(startPosition);
+ player->setStartFrame(startFrameNum);
player->play();
playing = true;
}
~VVideoRec();
void draw();
int handleCommand(int command);
- void go(ULLONG startPosition);
+ void go(ULONG startPosition);
void timercall(int clientReference);