home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 May / maximum-cd-2010-05.iso / DiscContents / boxee-0.9.20.10711.exe / system / python / Lib / plat-mac / Carbon / MediaDescr.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-07-20  |  3.2 KB  |  80 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. import struct
  5. Error = 'MediaDescr.Error'
  6.  
  7. class _MediaDescriptionCodec:
  8.     
  9.     def __init__(self, trunc, size, names, fmt):
  10.         self.trunc = trunc
  11.         self.size = size
  12.         self.names = names
  13.         self.fmt = fmt
  14.  
  15.     
  16.     def decode(self, data):
  17.         if self.trunc:
  18.             data = data[:self.size]
  19.         
  20.         values = struct.unpack(self.fmt, data)
  21.         if len(values) != len(self.names):
  22.             raise Error, ('Format length does not match number of names', descr)
  23.         
  24.         rv = { }
  25.         for i in range(len(values)):
  26.             name = self.names[i]
  27.             value = values[i]
  28.             if type(name) == type(()):
  29.                 (name, cod, dec) = name
  30.                 value = dec(value)
  31.             
  32.             rv[name] = value
  33.         
  34.         return rv
  35.  
  36.     
  37.     def encode(dict):
  38.         list = [
  39.             self.fmt]
  40.         for name in self.names:
  41.             if type(name) == type(()):
  42.                 (name, cod, dec) = name
  43.             else:
  44.                 cod = None
  45.                 dec = None
  46.             value = dict[name]
  47.             if cod:
  48.                 value = cod(value)
  49.             
  50.             list.append(value)
  51.         
  52.         rv = struct.pack(*list)
  53.         return rv
  54.  
  55.  
  56.  
  57. def _tofixed(float):
  58.     hi = int(float)
  59.     lo = int(float * 65536) & 65535
  60.     return hi << 16 | lo
  61.  
  62.  
  63. def _fromfixed(fixed):
  64.     hi = fixed >> 16 & 65535
  65.     lo = fixed & 65535
  66.     return hi + lo / float(65536)
  67.  
  68.  
  69. def _tostr31(str):
  70.     return chr(len(str)) + str + '\x00' * (31 - len(str))
  71.  
  72.  
  73. def _fromstr31(str31):
  74.     return str31[1:1 + ord(str31[0])]
  75.  
  76. SampleDescription = _MediaDescriptionCodec(1, 16, ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex'), 'l4slhh')
  77. SoundDescription = _MediaDescriptionCodec(1, 36, ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex', 'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize', 'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed)), 'l4slhhhh4shhhhl')
  78. SoundDescriptionV1 = _MediaDescriptionCodec(1, 52, ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex', 'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize', 'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed), 'samplesPerPacket', 'bytesPerPacket', 'bytesPerFrame', 'bytesPerSample'), 'l4slhhhh4shhhhlllll')
  79. ImageDescription = _MediaDescriptionCodec(1, 86, ('idSize', 'cType', 'resvd1', 'resvd2', 'dataRefIndex', 'version', 'revisionLevel', 'vendor', 'temporalQuality', 'spatialQuality', 'width', 'height', ('hRes', _tofixed, _fromfixed), ('vRes', _tofixed, _fromfixed), 'dataSize', 'frameCount', ('name', _tostr31, _fromstr31), 'depth', 'clutID'), 'l4slhhhh4sllhhlllh32shh')
  80.