$search
00001 /* 00002 * Copyright (C) 2000-2003 Damien Douxchamps <ddouxchamps@users.sf.net> 00003 * Dan Dennedy <dan@dennedy.org> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation; either version 2 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software Foundation, 00017 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #ifndef __CONVERSIONS_H__ 00021 #define __CONVERSIONS_H__ 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 #include <stdlib.h> 00028 #include <stdio.h> 00029 00030 typedef enum 00031 { 00032 NO_BAYER_DECODING, 00033 BAYER_DECODING_NEAREST, 00034 BAYER_DECODING_EDGE_SENSE, 00035 BAYER_DECODING_DOWNSAMPLE 00036 } bayer_decoding_t; 00037 00038 typedef enum 00039 { 00040 NO_STEREO_DECODING, 00041 STEREO_DECODING_INTERLACED, 00042 STEREO_DECODING_FIELD 00043 } stereo_decoding_t; 00044 00045 typedef enum 00046 { 00047 BAYER_PATTERN_BGGR, 00048 BAYER_PATTERN_GRBG, 00049 BAYER_PATTERN_RGGB, 00050 BAYER_PATTERN_GBRG 00051 } bayer_pattern_t; 00052 00053 // UYVY <-> YUYV 00054 void 00055 uyvy2yuyv (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00056 00057 void 00058 yuyv2uyvy (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00059 00060 // XXX -> UYVY 00061 void 00062 uyyvyy2uyvy (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00063 00064 void 00065 uyv2uyvy (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00066 00067 void 00068 y2uyvy (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00069 00070 void 00071 y162uyvy (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels, int bits); 00072 00073 void 00074 y162y (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels, int bits); 00075 00076 void 00077 rgb2uyvy (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00078 00079 void 00080 rgb482uyvy (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00081 00082 // XXX -> RGB 00083 void 00084 rgb482rgb (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00085 00086 void 00087 uyv2rgb (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00088 00089 void 00090 uyvy2rgb (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00091 00092 void 00093 uyyvyy2rgb (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00094 00095 void 00096 y2rgb (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00097 00098 void 00099 y162rgb (unsigned char *src, unsigned char *dest, unsigned long long int NumPixels, int bits); 00100 00101 // BAYER -> RGB 00102 void 00103 BayerNearestNeighbor(unsigned char *src, unsigned char *dest, int sx, int sy, bayer_pattern_t type); 00104 00105 void 00106 BayerEdgeSense(unsigned char *src, unsigned char *dest, int sx, int sy, bayer_pattern_t type); 00107 00108 void 00109 BayerDownsample(unsigned char *src, unsigned char *dest, int sx, int sy, bayer_pattern_t type); 00110 00111 void 00112 StereoDecode(unsigned char *src, unsigned char *dest, unsigned long long int NumPixels); 00113 00114 #ifdef __cplusplus 00115 } 00116 #endif 00117 00118 #endif