linux/drivers/media/video/pwc/pwc-dec23.h
<<
>>
Prefs
   1/* Linux driver for Philips webcam
   2   (C) 2004-2006 Luc Saillard (luc@saillard.org)
   3
   4   NOTE: this version of pwc is an unofficial (modified) release of pwc & pcwx
   5   driver and thus may have bugs that are not present in the original version.
   6   Please send bug reports and support requests to <luc@saillard.org>.
   7   The decompression routines have been implemented by reverse-engineering the
   8   Nemosoft binary pwcx module. Caveat emptor.
   9
  10   This program is free software; you can redistribute it and/or modify
  11   it under the terms of the GNU General Public License as published by
  12   the Free Software Foundation; either version 2 of the License, or
  13   (at your option) any later version.
  14
  15   This program is distributed in the hope that it will be useful,
  16   but WITHOUT ANY WARRANTY; without even the implied warranty of
  17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18   GNU General Public License for more details.
  19
  20   You should have received a copy of the GNU General Public License
  21   along with this program; if not, write to the Free Software
  22   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  23*/
  24
  25#ifndef PWC_DEC23_H
  26#define PWC_DEC23_H
  27
  28#include "pwc.h"
  29
  30struct pwc_dec23_private
  31{
  32  unsigned int scalebits;
  33  unsigned int nbitsmask, nbits; /* Number of bits of a color in the compressed stream */
  34
  35  unsigned int reservoir;
  36  unsigned int nbits_in_reservoir;
  37  const unsigned char *stream;
  38  int temp_colors[16];
  39
  40  unsigned char table_0004_pass1[16][1024];
  41  unsigned char table_0004_pass2[16][1024];
  42  unsigned char table_8004_pass1[16][256];
  43  unsigned char table_8004_pass2[16][256];
  44  unsigned int  table_subblock[256][12];
  45
  46  unsigned char table_bitpowermask[8][256];
  47  unsigned int  table_d800[256];
  48  unsigned int  table_dc00[256];
  49
  50};
  51
  52
  53int pwc_dec23_alloc(struct pwc_device *pwc);
  54int pwc_dec23_init(struct pwc_device *pwc, int type, unsigned char *cmd);
  55void pwc_dec23_exit(void);
  56void pwc_dec23_decompress(const struct pwc_device *pwc,
  57                          const void *src,
  58                          void *dst,
  59                          int flags);
  60
  61
  62
  63#endif
  64
  65
  66/* vim: set cino= formatoptions=croql cindent shiftwidth=8 tabstop=8: */
  67
  68