[vdr] vdr-xineliboutput a small patch

Matti Horila mhorila at nic.fi
Sat Mar 31 21:15:48 CEST 2007


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





More information about the vdr mailing list