summaryrefslogtreecommitdiffstats
path: root/Lib/plat-mac/Carbon/MediaDescr.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/plat-mac/Carbon/MediaDescr.py')
-rw-r--r--Lib/plat-mac/Carbon/MediaDescr.py97
1 files changed, 0 insertions, 97 deletions
diff --git a/Lib/plat-mac/Carbon/MediaDescr.py b/Lib/plat-mac/Carbon/MediaDescr.py
deleted file mode 100644
index 4a40062..0000000
--- a/Lib/plat-mac/Carbon/MediaDescr.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# Parsers/generators for QuickTime media descriptions
-import struct
-
-Error = 'MediaDescr.Error'
-
-class _MediaDescriptionCodec:
- def __init__(self, trunc, size, names, fmt):
- self.trunc = trunc
- self.size = size
- self.names = names
- self.fmt = fmt
-
- def decode(self, data):
- if self.trunc:
- data = data[:self.size]
- values = struct.unpack(self.fmt, data)
- if len(values) != len(self.names):
- raise Error('Format length does not match number of names', descr)
- rv = {}
- for i in range(len(values)):
- name = self.names[i]
- value = values[i]
- if type(name) == type(()):
- name, cod, dec = name
- value = dec(value)
- rv[name] = value
- return rv
-
- def encode(dict):
- list = [self.fmt]
- for name in self.names:
- if type(name) == type(()):
- name, cod, dec = name
- else:
- cod = dec = None
- value = dict[name]
- if cod:
- value = cod(value)
- list.append(value)
- rv = struct.pack(*list)
- return rv
-
-# Helper functions
-def _tofixed(float):
- hi = int(float)
- lo = int(float*0x10000) & 0xffff
- return (hi<<16)|lo
-
-def _fromfixed(fixed):
- hi = (fixed >> 16) & 0xffff
- lo = (fixed & 0xffff)
- return hi + (lo / float(0x10000))
-
-def _tostr31(str):
- return chr(len(str)) + str + '\0'*(31-len(str))
-
-def _fromstr31(str31):
- return str31[1:1+ord(str31[0])]
-
-SampleDescription = _MediaDescriptionCodec(
- 1, # May be longer, truncate
- 16, # size
- ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex'), # Attributes
- "l4slhh" # Format
-)
-
-SoundDescription = _MediaDescriptionCodec(
- 1,
- 36,
- ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex',
- 'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize',
- 'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed)),
- "l4slhhhh4shhhhl" # Format
-)
-
-SoundDescriptionV1 = _MediaDescriptionCodec(
- 1,
- 52,
- ('descSize', 'dataFormat', 'resvd1', 'resvd2', 'dataRefIndex',
- 'version', 'revlevel', 'vendor', 'numChannels', 'sampleSize',
- 'compressionID', 'packetSize', ('sampleRate', _tofixed, _fromfixed), 'samplesPerPacket',
- 'bytesPerPacket', 'bytesPerFrame', 'bytesPerSample'),
- "l4slhhhh4shhhhlllll" # Format
-)
-
-ImageDescription = _MediaDescriptionCodec(
- 1, # May be longer, truncate
- 86, # size
- ('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',
-)
-
-# XXXX Others, like TextDescription and such, remain to be done.