^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* Linux driver for Philips webcam
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) (C) 2004-2006 Luc Saillard (luc@saillard.org)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) NOTE: this version of pwc is an unofficial (modified) release of pwc & pcwx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) driver and thus may have bugs that are not present in the original version.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Please send bug reports and support requests to <luc@saillard.org>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) The decompression routines have been implemented by reverse-engineering the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) Nemosoft binary pwcx module. Caveat emptor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) /* This tables contains entries for the 675/680/690 (Timon) camera, with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 4 different qualities (no compression, low, medium, high).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) It lists the bandwidth requirements for said mode by its alternate interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) number. An alternate of 0 means that the mode is unavailable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) There are 6 * 4 * 4 entries:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 6 different resolutions subqcif, qsif, qcif, sif, cif, vga
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 6 framerates: 5, 10, 15, 20, 25, 30
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 4 compression modi: none, low, medium, high
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) When an uncompressed mode is not available, the next available compressed mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) will be chosen (unless the decompressor is absent). Sometimes there are only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 1 or 2 compressed modes available; in that case entries are duplicated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #ifndef PWC_TIMON_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define PWC_TIMON_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #include "pwc.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define PWC_FPS_MAX_TIMON 6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) struct Timon_table_entry
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) char alternate; /* USB alternate interface */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) unsigned short packetsize; /* Normal packet size */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) unsigned short bandlength; /* Bandlength when decompressing */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) unsigned char mode[13]; /* precomputed mode settings for cam */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) extern const struct Timon_table_entry Timon_table[PSZ_MAX][PWC_FPS_MAX_TIMON][4];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) extern const unsigned int TimonRomTable [16][2][16][8];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) extern const unsigned int Timon_fps_vector[PWC_FPS_MAX_TIMON];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)