2019-05-27 08:55:05 +02:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2006-04-24 10:29:46 -03:00
/* 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
2012-01-08 11:29:19 -03:00
struct pwc_device ;
2006-04-24 10:29:46 -03:00
struct pwc_dec23_private
{
2011-10-09 09:16:46 -03:00
struct mutex lock ;
2012-01-10 13:23:34 -03:00
unsigned char last_cmd , last_cmd_valid ;
2006-04-24 10:29:46 -03:00
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 ;
2012-01-10 13:23:34 -03:00
2006-04-24 10:29:46 -03:00
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 ] ;
} ;
2012-01-10 17:02:04 -03:00
void pwc_dec23_init ( struct pwc_device * pdev , const unsigned char * cmd ) ;
2012-01-08 11:29:19 -03:00
void pwc_dec23_decompress ( struct pwc_device * pdev ,
2006-04-24 10:29:46 -03:00
const void * src ,
2011-12-31 10:52:02 -03:00
void * dst ) ;
2006-04-24 10:29:46 -03:00
# endif