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