home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pypil112.zip / PIL-1.1.2.zip / Lib / site-packages / PIL / MpegImagePlugin.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2001-12-25  |  3KB  |  65 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.2)
  3.  
  4. __version__ = '0.1'
  5. import array
  6. import string
  7. import Image
  8. import ImageFile
  9.  
  10. class BitStream:
  11.     
  12.     def __init__(self, fp):
  13.         self.fp = fp
  14.         self.bits = 0
  15.         self.bitbuffer = 0
  16.  
  17.     
  18.     def next(self):
  19.         return ord(self.fp.read(1))
  20.  
  21.     
  22.     def peek(self, bits):
  23.         while self.bits < bits:
  24.             c = self.next()
  25.             if c < 0:
  26.                 self.bits = 0
  27.                 continue
  28.             
  29.             self.bitbuffer = (self.bitbuffer << 8) + c
  30.             self.bits = self.bits + 8
  31.         return self.bitbuffer >> self.bits - bits & (1 << bits) - 1
  32.  
  33.     
  34.     def skip(self, bits):
  35.         while self.bits < bits:
  36.             self.bitbuffer = (self.bitbuffer << 8) + ord(self.fp.read(1))
  37.             self.bits = self.bits + 8
  38.         self.bits = self.bits - bits
  39.  
  40.     
  41.     def read(self, bits):
  42.         v = self.peek(bits)
  43.         self.bits = self.bits - bits
  44.         return v
  45.  
  46.  
  47.  
  48. class MpegImageFile(ImageFile.ImageFile):
  49.     format = 'MPEG'
  50.     format_description = 'MPEG'
  51.     
  52.     def _open(self):
  53.         s = BitStream(self.fp)
  54.         if s.read(32) != 435:
  55.             raise SyntaxError, 'not an MPEG file'
  56.         
  57.         self.mode = 'RGB'
  58.         self.size = (s.read(12), s.read(12))
  59.  
  60.  
  61. Image.register_open('MPEG', MpegImageFile)
  62. Image.register_extension('MPEG', '.mpg')
  63. Image.register_extension('MPEG', '.mpeg')
  64. Image.register_mime('MPEG', 'video/mpeg')
  65.