/* 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 |