Update of /cvsroot/freevo/freevo/src/video/plugins
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16881

Modified Files:
        mplayer.py 
Log Message:
prevent mplayer from seeking after the end of a growing file

Index: mplayer.py
===================================================================
RCS file: /cvsroot/freevo/freevo/src/video/plugins/mplayer.py,v
retrieving revision 1.69
retrieving revision 1.70
diff -C2 -d -r1.69 -r1.70
*** mplayer.py  13 Jun 2004 00:36:14 -0000      1.69
--- mplayer.py  23 Jun 2004 19:46:17 -0000      1.70
***************
*** 10,13 ****
--- 10,16 ----
  # -----------------------------------------------------------------------
  # $Log$
+ # Revision 1.70  2004/06/23 19:46:17  dischi
+ # prevent mplayer from seeking after the end of a growing file
+ #
  # Revision 1.69  2004/06/13 00:36:14  outlyer
  # Without this change, mplayer won't play files on a data DVD. I.e. I have
***************
*** 59,63 ****
  #   File "/usr/lib/python2.3/site-packages/freevo/childapp.py", line 610, in poll
  #     rc.post_event(self.stop_event())
! #   File "/usr/lib/python2.3/site-packages/freevo/video/plugins/mplayer.py", line 
505, in stop_event
  #     print _( 'ERROR' ) + ': ' + self.exit_type + \
  # TypeError: cannot concatenate 'str' and 'NoneType' objects
--- 62,66 ----
  #   File "/usr/lib/python2.3/site-packages/freevo/childapp.py", line 610, in poll
  #     rc.post_event(self.stop_event())
! #   File "/usr/lib/python2.3/site-packages/freevo/video/plugins/mplayer.py"
  #     print _( 'ERROR' ) + ': ' + self.exit_type + \
  # TypeError: cannot concatenate 'str' and 'NoneType' objects
***************
*** 228,232 ****
              self.item_info = mmpython.parse(url)
              if hasattr(self.item_info, 'get_length'):
!                 self.item_length = self.item_info.get_length()
                  
          if url.startswith('dvd://') and url[-1] == '/':
--- 231,236 ----
              self.item_info = mmpython.parse(url)
              if hasattr(self.item_info, 'get_length'):
!                 self.item_length = self.item_info.get_endpos()
!                 self.dynamic_seek_control = True
                  
          if url.startswith('dvd://') and url[-1] == '/':
***************
*** 472,481 ****
  
          if event == SEEK:
              if event.arg > 0 and self.item_length != -1:
                  # check if seek is allowed
!                 if self.item_length <= self.item.elapsed + event.arg:
!                     # recheck size
!                     self.item_length = self.item_info.get_length()
!                 if self.item_length <= self.item.elapsed + event.arg:
                      _debug_('unable to seek %s secs at time %s, length %s' % \
                              (event.arg, self.item.elapsed, self.item_length))
--- 476,500 ----
  
          if event == SEEK:
+             if event.arg > 0 and self.item_length != -1 and 
self.dynamic_seek_control:
+                 # check if the file is growing
+                 if self.item_info.get_endpos() == self.item_length:
+                     # not growing, deactivate this
+                     self.item_length = -1
+ 
+                 self.dynamic_seek_control = False
+ 
              if event.arg > 0 and self.item_length != -1:
+                 # safety time for bad mplayer seeking
+                 seek_safety_time = 20
+                 if self.item_info['type'] in ('MPEG-PES', 'MPEG-TS'):
+                     seek_safety_time = 500
+ 
                  # check if seek is allowed
!                 if self.item_length <= self.item.elapsed + event.arg + 
seek_safety_time:
!                     # get new length
!                     self.item_length = self.item_info.get_endpos()
!                     
!                 # check again if seek is allowed
!                 if self.item_length <= self.item.elapsed + event.arg + 
seek_safety_time:
                      _debug_('unable to seek %s secs at time %s, length %s' % \
                              (event.arg, self.item.elapsed, self.item_length))
***************
*** 614,618 ****
          if line.find("A:") == 0:
              m = self.RE_TIME(line)
!             if hasattr(m,'group'):
                  self.item.elapsed = int(m.group(1))+1
                  for p in self.elapsed_plugins:
--- 633,637 ----
          if line.find("A:") == 0:
              m = self.RE_TIME(line)
!             if hasattr(m,'group') and self.item.elapsed != int(m.group(1))+1:
                  self.item.elapsed = int(m.group(1))+1
                  for p in self.elapsed_plugins:



-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
Freevo-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to