1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/usr/bin/env python
- import sys
- import pygame
- from pygame.compat import xrange_
- SR= (800,600)
- ovl= None
- ########################################################################
- # Simple video player
- def vPlayer( fName ):
- global ovl
- f= open( fName, 'rb' )
- fmt= f.readline().strip()
- res= f.readline().strip()
- col= f.readline().strip()
- if fmt!= "P5":
- print ('Unknown format( len %d ). Exiting...' % len( fmt ))
- return
-
- w,h= [ int(x) for x in res.split( ' ' ) ]
- h= ( h* 2 )/ 3
- # Read into strings
- y= f.read( w*h )
- u= []
- v= []
- for i in xrange_( 0, h/2 ):
- u.append( f.read( w/2 ))
- v.append( f.read( w/2 ))
-
- u= ''.join(u)
- v= ''.join(v)
-
- # Open overlay with the resolution specified
- ovl= pygame.Overlay(pygame.YV12_OVERLAY, (w,h))
- ovl.set_location(0, 0, w, h)
-
- ovl.display((y,u,v))
- while 1:
- pygame.time.wait(10)
- for ev in pygame.event.get():
- if ev.type in (pygame.KEYDOWN, pygame.QUIT):
- return
- def main(fname):
- """play video file fname"""
- pygame.init()
- try:
- pygame.display.set_mode(SR)
- vPlayer(fname)
- finally:
- pygame.quit()
- # Test all modules
- if __name__== '__main__':
- if len( sys.argv )!= 2:
- print ("Usage: play_file <file_pattern>")
- else:
- main(sys.argv[1])
|