mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	
		
			
	
	
		
			237 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			237 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# 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
							 |