home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-02-04 | 5.2 KB | 237 lines | [TEXT/R*ch] |
- #
- # 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
- #
- 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 Proprietaty 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
-