Hi all.
I had a small problem with xineliboutput, i didn't find a way to start
playing a file with mediaplayer from the beginning if the file had been
earlier watched till the end. Media player always started from end of file.
So i made a small patch, which saves resume position to 0 seconds if
there was less than 10 seconds till the end of file.
Regards
Matti
--- vdr-1.4.6-vanilla/PLUGINS/src/xineliboutput-1.0.0rc1/media_player.c
2007-03-17 14:41:20.000000000 +0200
+++ vdr-1.4.6/PLUGINS/src/xineliboutput-1.0.0rc1/media_player.c
2007-03-31 21:50:42.000000000 +0300
@@ -228,7 +228,7 @@
void cXinelibPlayer::Activate(bool On)
{
- int pos = 0, fd = -1;
+ int pos = 0, fd = -1, len = 0;
if(On) {
if(m_UseResume && !*m_ResumeFile)
m_ResumeFile = cString::sprintf("%s.resume", *m_File);
@@ -267,6 +267,12 @@
pos = cXinelibDevice::Instance().PlayFileCtrl("GETPOS");
if(pos>=0) {
pos /= 1000;
+ len = cXinelibDevice::Instance().PlayFileCtrl("GETLENGTH");
+ len /= 1000;
+ len -= 10;
+ if( pos > len )
+ pos = 0;
+
if(0 <= (fd = open(m_ResumeFile, O_WRONLY | O_CREAT,
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH))) {
if(write(fd, &pos, sizeof(int)) != sizeof(int)) {