text: #
  # cl.h - Compression Library typedefs and prototypes
  #
  #   01/07/92    Cleanup by Brian Knittel
  #   02/18/92    Original Version by Brian Knittel
  #
  
  #
  # originalFormat parameter values
  #
  from warnings import warnpy3k
  warnpy3k("the CL_old module has been removed in Python 3.0", stacklevel=2)
  del warnpy3k
  
  MAX_NUMBER_OF_ORIGINAL_FORMATS = 32
  
  # Audio
  MONO = 0
  STEREO_INTERLEAVED = 1
  
  # Video
  # YUV is defined to be the same thing as YCrCb (luma and two chroma components).
  # 422 is appended to YUV (or YCrCb) if the chroma is sub-sampled by 2
  #       horizontally, packed as U Y1 V Y2 (byte order).
  # 422HC is appended to YUV (or YCrCb) if the chroma is sub-sampled by 2
  #       vertically in addition to horizontally, and is packed the same as
  #       422 except that U & V are not valid on the second line.
  #
  RGB = 0
  RGBX = 1
  RGBA = 2
  RGB332 = 3
  
  GRAYSCALE = 4
  Y = 4
  YUV = 5
  YCbCr = 5
  YUV422 = 6                              # 4:2:2 sampling
  YCbCr422 = 6                            # 4:2:2 sampling
  YUV422HC = 7                            # 4:1:1 sampling
  YCbCr422HC = 7                          # 4:1:1 sampling
  YUV422DC = 7                            # 4:1:1 sampling
  YCbCr422DC = 7                          # 4:1:1 sampling
  
  BEST_FIT = -1
  
  def BytesPerSample(s):
      if s in (MONO, YUV):
          return 2
      elif s == STEREO_INTERLEAVED:
          return 4
      else:
          return 0
  
  def BytesPerPixel(f):
      if f in (RGB, YUV):
          return 3
      elif f in (RGBX, RGBA):
          return 4
      elif f in (RGB332, GRAYSCALE):
          return 1
      else:
          return 2
  
  def AudioFormatName(f):
      if f == MONO:
          return 'MONO'
      elif f == STEREO_INTERLEAVED:
          return 'STEREO_INTERLEAVED'
      else:
          return 'Not a valid format'
  
  def VideoFormatName(f):
      if f == RGB:
          return 'RGB'
      elif f == RGBX:
          return 'RGBX'
      elif f == RGBA:
          return 'RGBA'
      elif f == RGB332:
          return 'RGB332'
      elif f == GRAYSCALE:
          return 'GRAYSCALE'
      elif f == YUV:
          return 'YUV'
      elif f == YUV422:
          return 'YUV422'
      elif f == YUV422DC:
          return 'YUV422DC'
      else:
          return 'Not a valid format'
  
  MAX_NUMBER_OF_AUDIO_ALGORITHMS = 32
  MAX_NUMBER_OF_VIDEO_ALGORITHMS = 32
  
  #
  # Algorithm types
  #
  AUDIO = 0
  VIDEO = 1
  
  def AlgorithmNumber(scheme):
      return scheme & 0x7fff
  def AlgorithmType(scheme):
      return (scheme >> 15) & 1
  def Algorithm(type, n):
      return n | ((type & 1) << 15)
  
  #
  # "compressionScheme" argument values
  #
  UNKNOWN_SCHEME = -1
  
  UNCOMPRESSED_AUDIO = Algorithm(AUDIO, 0)
  G711_ULAW = Algorithm(AUDIO, 1)
  ULAW = Algorithm(AUDIO, 1)
  G711_ALAW = Algorithm(AUDIO, 2)
  ALAW = Algorithm(AUDIO, 2)
  AWARE_MPEG_AUDIO = Algorithm(AUDIO, 3)
  AWARE_MULTIRATE = Algorithm(AUDIO, 4)
  
  UNCOMPRESSED = Algorithm(VIDEO, 0)
  UNCOMPRESSED_VIDEO = Algorithm(VIDEO, 0)
  RLE = Algorithm(VIDEO, 1)
  JPEG = Algorithm(VIDEO, 2)
  MPEG_VIDEO = Algorithm(VIDEO, 3)
  MVC1 = Algorithm(VIDEO, 4)
  RTR = Algorithm(VIDEO, 5)
  RTR1 = Algorithm(VIDEO, 5)
  
  #
  # Parameters
  #
  MAX_NUMBER_OF_PARAMS = 256
  # Default Parameters
  IMAGE_WIDTH = 0
  IMAGE_HEIGHT = 1
  ORIGINAL_FORMAT = 2
  INTERNAL_FORMAT = 3
  COMPONENTS = 4
  BITS_PER_COMPONENT = 5
  FRAME_RATE = 6
  COMPRESSION_RATIO = 7
  EXACT_COMPRESSION_RATIO = 8
  FRAME_BUFFER_SIZE = 9
  COMPRESSED_BUFFER_SIZE = 10
  BLOCK_SIZE = 11
  PREROLL = 12
  FRAME_TYPE = 13
  ALGORITHM_ID = 14
  ALGORITHM_VERSION = 15
  ORIENTATION = 16
  NUMBER_OF_FRAMES = 17
  SPEED = 18
  LAST_FRAME_INDEX = 19
  NUMBER_OF_PARAMS = 20
  
  # JPEG Specific Parameters
  QUALITY_FACTOR = NUMBER_OF_PARAMS + 0
  
  # MPEG Specific Parameters
  END_OF_SEQUENCE = NUMBER_OF_PARAMS + 0
  
  # RTR Specific Parameters
  QUALITY_LEVEL = NUMBER_OF_PARAMS + 0
  ZOOM_X = NUMBER_OF_PARAMS + 1
  ZOOM_Y = NUMBER_OF_PARAMS + 2
  
  #
  # Parameter value types
  #
  ENUM_VALUE = 0                          # only certain constant values are valid
  RANGE_VALUE = 1                         # any value in a given range is valid
  FLOATING_ENUM_VALUE = 2                 # only certain constant floating point values are valid
  FLOATING_RANGE_VALUE = 3                # any value in a given floating point range is valid
  
  #
  # Algorithm Functionality
  #
  DECOMPRESSOR = 1
  COMPRESSOR = 2
  CODEC = 3
  
  #
  # Buffer types
  #
  NONE = 0
  FRAME = 1
  DATA = 2
  
  #
  # Frame types
  #
  NONE = 0
  KEYFRAME = 1
  INTRA = 1
  PREDICTED = 2
  BIDIRECTIONAL = 3
  
  #
  # Orientations
  #
  TOP_DOWN = 0
  BOTTOM_UP = 1
  
  #
  # SGI Proprietary Algorithm Header Start Code
  #
  HEADER_START_CODE = 0xc1C0DEC
  
  #
  # error codes
  #
  
  BAD_NO_BUFFERSPACE =  -2                # no space for internal buffers
  BAD_PVBUFFER =  -3                      # param/val buffer doesn't make sense
  BAD_BUFFERLENGTH_NEG =  -4              # negative buffer length
  BAD_BUFFERLENGTH_ODD =  -5              # odd length parameter/value buffer
  BAD_PARAM =  -6                         # invalid parameter
  BAD_COMPRESSION_SCHEME =  -7            # compression scheme parameter invalid
  BAD_COMPRESSOR_HANDLE =  -8             # compression handle parameter invalid
  BAD_COMPRESSOR_HANDLE_POINTER = -9      # compression handle pointer invalid
  BAD_BUFFER_HANDLE = -10                 # buffer handle invalid
  BAD_BUFFER_QUERY_SIZE = -11             # buffer query size too large
  JPEG_ERROR = -12                        # error from libjpeg
  BAD_FRAME_SIZE = -13                    # frame size invalid
  PARAM_OUT_OF_RANGE = -14                # parameter out of range
  ADDED_ALGORITHM_ERROR = -15             # added algorithm had a unique error
  BAD_ALGORITHM_TYPE = -16                # bad algorithm type
  BAD_ALGORITHM_NAME = -17                # bad algorithm name
  BAD_BUFFERING = -18                     # bad buffering calls
  BUFFER_NOT_CREATED = -19                # buffer not created
  BAD_BUFFER_EXISTS = -20                 # buffer already created
  BAD_INTERNAL_FORMAT = -21               # invalid internal format
  BAD_BUFFER_POINTER = -22                # invalid buffer pointer
  FRAME_BUFFER_SIZE_ZERO = -23            # frame buffer has zero size
  BAD_STREAM_HEADER = -24                 # invalid stream header
  
  BAD_LICENSE = -25                       # netls license not valid
  AWARE_ERROR = -26                       # error from libawcmp
  