home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyth_os2.zip / python-1.0.2 / Lib / sgi / CL.py < prev    next >
Text File  |  1993-02-04  |  5KB  |  237 lines

  1. #
  2. # cl.h - Compression Library typedefs and prototypes
  3. #
  4. #   01/07/92    Cleanup by Brian Knittel
  5. #   02/18/92    Original Version by Brian Knittel
  6. #
  7.  
  8. #
  9. # originalFormat parameter values
  10. #
  11. MAX_NUMBER_OF_ORIGINAL_FORMATS = 32
  12.  
  13. # Audio
  14. MONO = 0
  15. STEREO_INTERLEAVED = 1
  16.  
  17. # Video 
  18. # YUV is defined to be the same thing as YCrCb (luma and two chroma components).
  19. # 422 is appended to YUV (or YCrCb) if the chroma is sub-sampled by 2 
  20. #    horizontally, packed as U Y1 V Y2 (byte order).
  21. # 422HC is appended to YUV (or YCrCb) if the chroma is sub-sampled by 2 
  22. #    vertically in addition to horizontally, and is packed the same as 
  23. #    422 except that U & V are not valid on the second line.
  24. #
  25. RGB = 0
  26. RGBX = 1
  27. RGBA = 2
  28. RGB332 = 3
  29.  
  30. GRAYSCALE = 4
  31. Y = 4
  32. YUV = 5    
  33. YCbCr = 5    
  34. YUV422 = 6                # 4:2:2 sampling
  35. YCbCr422 = 6                # 4:2:2 sampling
  36. YUV422HC = 7                # 4:1:1 sampling
  37. YCbCr422HC = 7                # 4:1:1 sampling
  38. YUV422DC = 7                # 4:1:1 sampling
  39. YCbCr422DC = 7                # 4:1:1 sampling
  40.  
  41. BEST_FIT = -1    
  42.  
  43. def BytesPerSample(s):
  44.     if s in (MONO, YUV):
  45.         return 2
  46.     elif s == STEREO_INTERLEAVED:
  47.         return 4
  48.     else:
  49.         return 0
  50.  
  51. def BytesPerPixel(f):
  52.     if f in (RGB, YUV):
  53.         return 3
  54.     elif f in (RGBX, RGBA):
  55.         return 4
  56.     elif f in (RGB332, GRAYSCALE):
  57.         return 1
  58.     else:
  59.         return 2
  60.  
  61. def AudioFormatName(f):
  62.     if f == MONO:
  63.         return 'MONO'
  64.     elif f == STEREO_INTERLEAVED:
  65.         return 'STEREO_INTERLEAVED'
  66.     else:
  67.         return 'Not a valid format'
  68.  
  69. def VideoFormatName(f):
  70.     if f == RGB:
  71.         return 'RGB'
  72.     elif f == RGBX:
  73.         return 'RGBX'
  74.     elif f == RGBA:
  75.         return 'RGBA'
  76.     elif f == RGB332:
  77.         return 'RGB332'
  78.     elif f == GRAYSCALE:
  79.         return 'GRAYSCALE'
  80.     elif f == YUV:
  81.         return 'YUV'
  82.     elif f == YUV422:
  83.         return 'YUV422'
  84.     elif f == YUV422DC:
  85.         return 'YUV422DC'
  86.     else:
  87.         return 'Not a valid format'
  88.  
  89. MAX_NUMBER_OF_AUDIO_ALGORITHMS = 32
  90. MAX_NUMBER_OF_VIDEO_ALGORITHMS = 32
  91.  
  92. #
  93. # Algorithm types
  94. #
  95. AUDIO = 0
  96. VIDEO = 1
  97.  
  98. def AlgorithmNumber(scheme):
  99.     return scheme & 0x7fff
  100. def AlgorithmType(scheme):
  101.     return (scheme >> 15) & 1
  102. def Algorithm(type, n):
  103.     return n | ((type & 1) << 15)
  104.  
  105. #
  106. # "compressionScheme" argument values
  107. #
  108. UNKNOWN_SCHEME = -1
  109.  
  110. UNCOMPRESSED_AUDIO = Algorithm(AUDIO, 0)
  111. G711_ULAW = Algorithm(AUDIO, 1)
  112. ULAW = Algorithm(AUDIO, 1)
  113. G711_ALAW = Algorithm(AUDIO, 2)
  114. ALAW = Algorithm(AUDIO, 2)
  115. AWARE_MPEG_AUDIO = Algorithm(AUDIO, 3)
  116. AWARE_MULTIRATE = Algorithm(AUDIO, 4)
  117.     
  118. UNCOMPRESSED = Algorithm(VIDEO, 0)
  119. UNCOMPRESSED_VIDEO = Algorithm(VIDEO, 0)
  120. RLE = Algorithm(VIDEO, 1)
  121. JPEG = Algorithm(VIDEO, 2)
  122. MPEG_VIDEO = Algorithm(VIDEO, 3)
  123. MVC1 = Algorithm(VIDEO, 4)
  124. RTR = Algorithm(VIDEO, 5)
  125. RTR1 = Algorithm(VIDEO, 5)
  126.  
  127. #
  128. # Parameters
  129. #
  130. MAX_NUMBER_OF_PARAMS = 256
  131. # Default Parameters
  132. IMAGE_WIDTH = 0
  133. IMAGE_HEIGHT = 1 
  134. ORIGINAL_FORMAT = 2
  135. INTERNAL_FORMAT = 3
  136. COMPONENTS = 4
  137. BITS_PER_COMPONENT = 5
  138. FRAME_RATE = 6
  139. COMPRESSION_RATIO = 7
  140. EXACT_COMPRESSION_RATIO = 8
  141. FRAME_BUFFER_SIZE = 9 
  142. COMPRESSED_BUFFER_SIZE = 10
  143. BLOCK_SIZE = 11
  144. PREROLL = 12
  145. FRAME_TYPE = 13
  146. ALGORITHM_ID = 14
  147. ALGORITHM_VERSION = 15
  148. ORIENTATION = 16
  149. NUMBER_OF_FRAMES = 17
  150. SPEED = 18
  151. LAST_FRAME_INDEX = 19
  152. NUMBER_OF_PARAMS = 20
  153.  
  154. # JPEG Specific Parameters
  155. QUALITY_FACTOR = NUMBER_OF_PARAMS + 0
  156.  
  157. # MPEG Specific Parameters
  158. END_OF_SEQUENCE = NUMBER_OF_PARAMS + 0
  159.  
  160. # RTR Specific Parameters
  161. QUALITY_LEVEL = NUMBER_OF_PARAMS + 0
  162. ZOOM_X = NUMBER_OF_PARAMS + 1
  163. ZOOM_Y = NUMBER_OF_PARAMS + 2
  164.  
  165. #
  166. # Parameter value types
  167. #
  168. ENUM_VALUE = 0                # only certain constant values are valid
  169. RANGE_VALUE = 1                # any value in a given range is valid
  170. FLOATING_ENUM_VALUE = 2            # only certain constant floating point values are valid
  171. FLOATING_RANGE_VALUE = 3        # any value in a given floating point range is valid
  172.  
  173. #
  174. # Algorithm Functionality
  175. #
  176. DECOMPRESSOR = 1
  177. COMPRESSOR = 2
  178. CODEC = 3
  179.  
  180. #
  181. # Buffer types
  182. #
  183. NONE = 0
  184. FRAME = 1
  185. DATA = 2
  186.  
  187. #
  188. # Frame types
  189. #
  190. NONE = 0
  191. KEYFRAME = 1
  192. INTRA = 1
  193. PREDICTED = 2
  194. BIDIRECTIONAL = 3
  195.  
  196. #
  197. # Orientations
  198. #
  199. TOP_DOWN = 0
  200. BOTTOM_UP = 1
  201.  
  202. #
  203. # SGI Proprietaty Algorithm Header Start Code
  204. #
  205. HEADER_START_CODE = 0xc1C0DEC
  206.  
  207. #
  208. # error codes
  209. #
  210.  
  211. BAD_NO_BUFFERSPACE =  -2        # no space for internal buffers
  212. BAD_PVBUFFER =  -3            # param/val buffer doesn't make sense
  213. BAD_BUFFERLENGTH_NEG =  -4        # negative buffer length
  214. BAD_BUFFERLENGTH_ODD =  -5        # odd length parameter/value buffer
  215. BAD_PARAM =  -6                # invalid parameter
  216. BAD_COMPRESSION_SCHEME =  -7        # compression scheme parameter invalid
  217. BAD_COMPRESSOR_HANDLE =  -8        # compression handle parameter invalid
  218. BAD_COMPRESSOR_HANDLE_POINTER = -9    # compression handle pointer invalid
  219. BAD_BUFFER_HANDLE = -10            # buffer handle invalid
  220. BAD_BUFFER_QUERY_SIZE = -11        # buffer query size too large
  221. JPEG_ERROR = -12            # error from libjpeg
  222. BAD_FRAME_SIZE = -13            # frame size invalid
  223. PARAM_OUT_OF_RANGE = -14        # parameter out of range
  224. ADDED_ALGORITHM_ERROR = -15        # added algorithm had a unique error
  225. BAD_ALGORITHM_TYPE = -16        # bad algorithm type
  226. BAD_ALGORITHM_NAME = -17        # bad algorithm name
  227. BAD_BUFFERING = -18            # bad buffering calls
  228. BUFFER_NOT_CREATED = -19        # buffer not created
  229. BAD_BUFFER_EXISTS = -20            # buffer already created
  230. BAD_INTERNAL_FORMAT = -21        # invalid internal format
  231. BAD_BUFFER_POINTER = -22        # invalid buffer pointer
  232. FRAME_BUFFER_SIZE_ZERO = -23        # frame buffer has zero size
  233. BAD_STREAM_HEADER = -24            # invalid stream header
  234.  
  235. BAD_LICENSE = -25            # netls license not valid
  236. AWARE_ERROR = -26            # error from libawcmp
  237.