50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-or-later */
 | |
| /* Linux driver for Philips webcam
 | |
|    (C) 2004-2006 Luc Saillard (luc@saillard.org)
 | |
| 
 | |
|    NOTE: this version of pwc is an unofficial (modified) release of pwc & pcwx
 | |
|    driver and thus may have bugs that are not present in the original version.
 | |
|    Please send bug reports and support requests to <luc@saillard.org>.
 | |
|    The decompression routines have been implemented by reverse-engineering the
 | |
|    Nemosoft binary pwcx module. Caveat emptor.
 | |
| 
 | |
| */
 | |
| 
 | |
| #ifndef PWC_DEC23_H
 | |
| #define PWC_DEC23_H
 | |
| 
 | |
| struct pwc_device;
 | |
| 
 | |
| struct pwc_dec23_private
 | |
| {
 | |
| 	struct mutex lock;
 | |
| 
 | |
| 	unsigned char last_cmd, last_cmd_valid;
 | |
| 
 | |
|   unsigned int scalebits;
 | |
|   unsigned int nbitsmask, nbits; /* Number of bits of a color in the compressed stream */
 | |
| 
 | |
|   unsigned int reservoir;
 | |
|   unsigned int nbits_in_reservoir;
 | |
| 
 | |
|   const unsigned char *stream;
 | |
|   int temp_colors[16];
 | |
| 
 | |
|   unsigned char table_0004_pass1[16][1024];
 | |
|   unsigned char table_0004_pass2[16][1024];
 | |
|   unsigned char table_8004_pass1[16][256];
 | |
|   unsigned char table_8004_pass2[16][256];
 | |
|   unsigned int  table_subblock[256][12];
 | |
| 
 | |
|   unsigned char table_bitpowermask[8][256];
 | |
|   unsigned int  table_d800[256];
 | |
|   unsigned int  table_dc00[256];
 | |
| 
 | |
| };
 | |
| 
 | |
| void pwc_dec23_init(struct pwc_device *pdev, const unsigned char *cmd);
 | |
| void pwc_dec23_decompress(struct pwc_device *pdev,
 | |
| 			  const void *src,
 | |
| 			  void *dst);
 | |
| #endif
 |