diff options
author | trhodes <trhodes@FreeBSD.org> | 2005-01-09 21:21:25 +0000 |
---|---|---|
committer | trhodes <trhodes@FreeBSD.org> | 2005-01-09 21:21:25 +0000 |
commit | 32dbe1c9e73069f38feefbcdcc92a3388db68c0d (patch) | |
tree | 4cc38f64caba8e7abd59519997f69e35f09ec06c /share/examples | |
parent | 8ae50c58538bc6382b15d98b97aa368bedb6c38d (diff) | |
download | FreeBSD-src-32dbe1c9e73069f38feefbcdcc92a3388db68c0d.zip FreeBSD-src-32dbe1c9e73069f38feefbcdcc92a3388db68c0d.tar.gz |
Remove the meteor helper files, imp removed the driver and manual page
over a year ago.
Diffstat (limited to 'share/examples')
-rw-r--r-- | share/examples/meteor/README | 1 | ||||
-rw-r--r-- | share/examples/meteor/rgb16.c | 109 | ||||
-rw-r--r-- | share/examples/meteor/rgb24.c | 103 | ||||
-rw-r--r-- | share/examples/meteor/test-n.c | 164 | ||||
-rw-r--r-- | share/examples/meteor/yuvpk.c | 120 | ||||
-rw-r--r-- | share/examples/meteor/yuvpl.c | 140 |
6 files changed, 0 insertions, 637 deletions
diff --git a/share/examples/meteor/README b/share/examples/meteor/README deleted file mode 100644 index c242145..0000000 --- a/share/examples/meteor/README +++ /dev/null @@ -1 +0,0 @@ -Example programs for the Matrox Meteor Video Capture Driver. diff --git a/share/examples/meteor/rgb16.c b/share/examples/meteor/rgb16.c deleted file mode 100644 index a3e965f..0000000 --- a/share/examples/meteor/rgb16.c +++ /dev/null @@ -1,109 +0,0 @@ -/* capture a PPM image using RGB16 and single capture mode */ - -/* Copyright (c) 1995 Mark Tinguely and Jim Lowe - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mark Tinguely and Jim Lowe - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/mman.h> -#include <sys/fcntl.h> -#include <dev/bktr/ioctl_meteor.h> - -extern int errno; -#define ROWS 480 -#define COLS 640 -#define SIZE (ROWS * COLS * 2) -main() -{ - struct meteor_geomet geo; - short *rgb16; - char b[4]; - char header[16]; - int i,o,c; - - if ((i = open("/dev/meteor", O_RDONLY)) < 0) { - printf("open failed: %d\n", errno); - exit(1); - } - /* set up the capture type and size */ - geo.rows = ROWS; - geo.columns = COLS; - geo.frames = 1; - - geo.oformat = METEOR_GEO_RGB16; - - if (ioctl(i, METEORSETGEO, &geo) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - c = METEOR_FMT_NTSC; - - if (ioctl(i, METEORSFMT, &c) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - c = METEOR_INPUT_DEV0; - - if (ioctl(i, METEORSINPUT, &c) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - rgb16 = (short *)mmap((caddr_t)0,SIZE,PROT_READ,MAP_SHARED, i, (off_t)0); - - if (rgb16 == (short *) MAP_FAILED) return (0); - - c = METEOR_CAP_SINGLE ; - ioctl(i, METEORCAPTUR, &c); - - if ((o = open("rgb16.ppm", O_WRONLY | O_CREAT, 0644)) < 0) { - printf("ppm open failed: %d\n", errno); - exit(1); - } - - /* make PPM header and save to file */ - strcpy(&header[0], "P6 640 480 255 "); - header[2] = header[6] = header[10] = header[14] = '\n'; - write (o, &header[0], 15); - - for (c = 0 ; c < ROWS*COLS; c++) { - b[0]= ((*rgb16 >> 7) & 0xf8); /* r */ - b[1]= ((*rgb16 >> 2) & 0xf8); /* g */ - b[2]= ((*rgb16++ << 3) & 0xf8); /* b */ - write(o, &b[0], 3); - } - close(o); - close(i); - exit(0); -} diff --git a/share/examples/meteor/rgb24.c b/share/examples/meteor/rgb24.c deleted file mode 100644 index ef9dfe7..0000000 --- a/share/examples/meteor/rgb24.c +++ /dev/null @@ -1,103 +0,0 @@ - /* capture a PPM file using 24 bit RGB image and read() */ -/* Copyright (c) 1995 Mark Tinguely and Jim Lowe - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mark Tinguely and Jim Lowe - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/fcntl.h> -#include <dev/bktr/ioctl_meteor.h> - -extern int errno; -#define ROWS 300 -#define COLS 400 -#define SIZE (ROWS * COLS * 4) -main() -{ - struct meteor_geomet geo; - char buf[SIZE],b[4],header[16],*p; - int i,o,c; - - if ((i = open("/dev/meteor", O_RDONLY)) < 0) { - printf("open failed: %d\n", errno); - exit(1); - } - /* set up the capture type and size */ - geo.rows = ROWS; - geo.columns = COLS; - geo.frames = 1; - geo.oformat = METEOR_GEO_RGB24 ; - - if (ioctl(i, METEORSETGEO, &geo) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - c = METEOR_FMT_NTSC; - - if (ioctl(i, METEORSFMT, &c) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - c = METEOR_INPUT_DEV0; - - if (ioctl(i, METEORSINPUT, &c) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - if ((c=read(i, &buf[0], SIZE)) < SIZE) { - printf("read failed %d %d %d\n", c, i, errno); - close(i); - exit(1); - } - close(i); - - if ((o = open("rgb24.ppm", O_WRONLY | O_CREAT, 0644)) < 0) { - printf("ppm open failed: %d\n", errno); - exit(1); - } - - /* make PPM header and save to file */ - strcpy(&header[0], "P6 400 300 255 "); - header[2] = header[6] = header[10] = header[14] = '\n'; - write (o, &header[0], 15); - /* save the RGB data to PPM file */ - for (p = &buf[0]; p < &buf[SIZE]; ) { - b[2] = *p++; /* blue */ - b[1] = *p++; /* green */ - b[0] = *p++; /* red */ - *p++; /* NULL byte */ - write(o,&b[0], 3); /* not very efficient */ - } - close(o); - exit(0); -} diff --git a/share/examples/meteor/test-n.c b/share/examples/meteor/test-n.c deleted file mode 100644 index 2288957..0000000 --- a/share/examples/meteor/test-n.c +++ /dev/null @@ -1,164 +0,0 @@ -/* A simple program to test the communication between the matrox meteor - * driver and an user application in the continous sync capture mode. - * - * First the driver clears the mask and decrements the counter like it - * would in a normal application. Then it purpose does not handle these - * responsibilities to simulate an application falling behind. I use - * the HUP signal to work as if the some of the buffers were removed - * (the second couter is used to cleared the correct bits. - * - * build kernel with at least: - * - * options "METEOR_ALLOC_PAGES=301" - * - */ -/* Copyright (c) 1995 Mark Tinguely and Jim Lowe - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mark Tinguely and Jim Lowe - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/mman.h> -#include <sys/fcntl.h> -#include <dev/bktr/ioctl_meteor.h> - -typedef unsigned char uint8; -typedef signed char int8; - -int i; -static uint8 *y; -extern int errno; -struct meteor_mem *common_mem; -int sig_cnt; -int sig_cnt2; - -void -hup_catcher() -{ - /* clear 4 oldest active bits */ - common_mem->active &= ~(1 << (sig_cnt2++ % 32)); - common_mem->active &= ~(1 << (sig_cnt2++ % 32)); - common_mem->active &= ~(1 << (sig_cnt2++ % 32)); - common_mem->active &= ~(1 << (sig_cnt2++ % 32)); - /* lowat is low enough that I will need 2 hups to start saving again */ - common_mem->num_active_bufs -= 4; - puts("hup caught"); -} - -void -usr2_catcher() -{ - int j; - struct meteor_capframe capframe; - - printf("active %3d = %08x ", sig_cnt,common_mem->active); - printf("# act %3d = %d\n", sig_cnt, common_mem->num_active_bufs); - - if (sig_cnt < 80) { - common_mem->active &= ~(1 << (sig_cnt % 32)); - common_mem->num_active_bufs--; - sig_cnt2++; - } - - printf("data %08x\n", *((u_long *) (y + (sig_cnt % 32) * - common_mem->frame_size))); - if (++sig_cnt >= 200) { - capframe.command=METEOR_CAP_STOP_FRAMES; - - if (ioctl(i, METEORCAPFRM, &capframe) < 0) { - printf("METEORCAPFRM failed %d\n", errno); - exit(1); - } - exit (0); - } -} - -main() -{ - struct meteor_geomet geo; - int height, width, depth, frames, size; - struct meteor_capframe capframe; - - if ((i = open("/dev/meteor", O_RDONLY)) < 0) { - printf("open failed\n"); - exit(1); - } - printf("test %d %d\n", errno, i); - - height = geo.rows = 120; - width= geo.columns = 160; - frames = geo.frames = 32; - depth = 2; /* 2 bytes per pixel */ - - printf("ioctl %d %d\n", errno, i); - - geo.oformat = METEOR_GEO_RGB16; - - if (ioctl(i, METEORSETGEO, &geo) < 0) { - printf("METEORSETGEO failed %d\n", errno); - exit(1); - } - - printf("mmap %d %d\n", errno, i); - size = ((width*height*depth*frames+4095)/4096)*4096; - y=(uint8 *) mmap((caddr_t)0, size + 4096, PROT_READ |PROT_WRITE,MAP_SHARED, i, (off_t)0); - - if (y == (uint8 *) MAP_FAILED) return (0); - - common_mem = (struct meteor_mem *) (y + size); - - signal(1, hup_catcher); - signal(31, usr2_catcher); - - capframe.command=METEOR_CAP_N_FRAMES; - capframe.signal=31; - capframe.lowat=25; - capframe.hiwat=30; - - printf("ioctl %d %d\n", errno, i); - if (ioctl(i, METEORCAPFRM, &capframe) < 0) { - printf("METEORCAPFRM failed %d\n", errno); - exit(1); - } - - printf("signal = %d\n", common_mem->signal); - printf("frame size = %d\n", common_mem->frame_size); - printf("buffers = %d\n", common_mem->num_bufs); - printf("hiwater = %d\n", common_mem->hiwat); - printf("lowater = %d\n", common_mem->lowat); - printf("active = %08x\n", common_mem->active); - printf("# active = %d\n", common_mem->num_active_bufs); - - printf("sleep loop\n", errno, i); - while (1) { - sleep (60); - } -} diff --git a/share/examples/meteor/yuvpk.c b/share/examples/meteor/yuvpk.c deleted file mode 100644 index c9efec3..0000000 --- a/share/examples/meteor/yuvpk.c +++ /dev/null @@ -1,120 +0,0 @@ -/* capture a PPM image using YUV packed format and single capture mode */ -/* Copyright (c) 1995 Mark Tinguely and Jim Lowe - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mark Tinguely and Jim Lowe - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/mman.h> -#include <sys/fcntl.h> -#include <dev/bktr/ioctl_meteor.h> - -typedef unsigned char uint8; -typedef signed char int8; - -static int8 *yuv_data; -extern int errno; -#define ROWS 480 -#define COLS 640 -#define SIZE (ROWS * COLS * 2) -main() -{ - struct meteor_geomet geo; - char b[4],header[16],*p; - int i,o,c,r; - int y1,y2,u,v; - - if ((i = open("/dev/meteor", O_RDONLY)) < 0) { - printf("open failed: %d\n", errno); - exit(1); - } - /* set up the capture type and size */ - geo.rows = ROWS; - geo.columns = COLS; - geo.frames = 1; - - - geo.oformat = METEOR_GEO_YUV_PACKED; - - if (ioctl(i, METEORSETGEO, &geo) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - c = METEOR_FMT_NTSC; - - if (ioctl(i, METEORSFMT, &c) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - c = METEOR_INPUT_DEV0; - - if (ioctl(i, METEORSINPUT, &c) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - yuv_data = (uint8 *)mmap((caddr_t)0,SIZE,PROT_READ,MAP_SHARED, i, (off_t)0); - - if (yuv_data == (int8 *) MAP_FAILED) return (0); - - c = METEOR_CAP_SINGLE ; - ioctl(i, METEORCAPTUR, &c); - - if ((o = open("yuvpk.ppm", O_WRONLY | O_CREAT, 0644)) < 0) { - printf("ppm open failed: %d\n", errno); - exit(1); - } - - /* make PPM header and save to file */ - strcpy(&header[0], "P6 640 480 255 "); - header[2] = header[6] = header[10] = header[14] = '\n'; - write (o, &header[0], 15); - - for (c = 0 ; c < ROWS*COLS; c+=2) { - u = *yuv_data++; - if ((y1 = *yuv_data++) < 0) y1 += 256; - v = *yuv_data++; - if ((y2 = *yuv_data++) < 0) y2 += 256; - - b[0]= (double)y1 + 1.375 * (double)v ; /*r*/ - b[1]= (double)y1 - 0.703125 * (double)v -0.34375 * (double)u ; /* g */ - b[2]= (double)y1 + 1.734375 * (double)u ; /* b */ - b[3]= (double)y2 + 1.375 * (double)v ; /*r*/ - b[4]= (double)y2 - 0.703125 * (double)v -0.34375 * (double)u ; /* g */ - b[5]= (double)y2 + 1.734375 * (double)u ; /* b */ - write(o,&b[0], 6); - } - close(o); - close(i); - exit(0); -} diff --git a/share/examples/meteor/yuvpl.c b/share/examples/meteor/yuvpl.c deleted file mode 100644 index 9e69465..0000000 --- a/share/examples/meteor/yuvpl.c +++ /dev/null @@ -1,140 +0,0 @@ -/* capture a PPM image using YUV planer format and single capture mode */ -/* Copyright (c) 1995 Mark Tinguely and Jim Lowe - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mark Tinguely and Jim Lowe - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <sys/mman.h> -#include <sys/fcntl.h> -#include <dev/bktr/ioctl_meteor.h> - - -typedef unsigned char uint8; -typedef signed char int8; - -static uint8 *yuv_data; -static int8 *ue, *uo, *ve, *vo; -extern int errno; -#define ROWS 480 -#define COLS 640 -#define SIZE (ROWS * COLS * 2) -main() -{ - struct meteor_geomet geo; - char b[4],header[16],*p; - int i,o,c,r; - int y1,y2,u,v; - int temp; - - if ((i = open("/dev/meteor", O_RDONLY)) < 0) { - printf("open failed: %d\n", errno); - exit(1); - } - /* set up the capture type and size */ - geo.rows = ROWS; - geo.columns = COLS; - geo.frames = 1; - - - geo.oformat = METEOR_GEO_YUV_PLANER; - - if (ioctl(i, METEORSETGEO, &geo) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - c = METEOR_FMT_NTSC; - - if (ioctl(i, METEORSFMT, &c) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - c = METEOR_INPUT_DEV0; - - if (ioctl(i, METEORSINPUT, &c) < 0) { - printf("ioctl failed: %d\n", errno); - exit(1); - } - - yuv_data = (uint8 *)mmap((caddr_t)0,SIZE,PROT_READ,MAP_SHARED, i, (off_t)0); - - if (yuv_data == (uint8 *) MAP_FAILED) return (0); - - temp = ROWS * COLS; - ue = yuv_data + temp; - temp = temp / 4; - ve = ue + temp; - uo = ve + temp; - vo = uo + temp; - -printf("data locations = %08x %08x %08x %08x %08x \n", yuv_data,ue,ve,uo,vo); - - c = METEOR_CAP_SINGLE ; - ioctl(i, METEORCAPTUR, &c); - - printf("read done %d %d\n", errno, i); - if ((o = open("yuvpl.ppm", O_WRONLY | O_CREAT, 0644)) < 0) { - printf("ppm open failed: %d\n", errno); - exit(1); - } - - /* make PPM header and save to file */ - strcpy(&header[0], "P6 640 480 255 "); - header[2] = header[6] = header[10] = header[14] = '\n'; - write (o, &header[0], 15); - - for (r = 0 ; r < ROWS ; r++) { - for (c = 0 ; c < COLS / 2; c++) { - if ((y1 = *yuv_data++) < 0) y1 += 256; - if ((y2 = *yuv_data++) < 0) y2 += 256; - if (r & 1) { /* odd */ - u = *uo++ ; - v = *vo++; - } - else { /* even */ - u = *ue++; - v = *ve++; - } - b[0]= (double)y1 + 1.375 * (double)v ; /*r*/ - b[1]= (double)y1 - 0.703125 * (double)v -0.34375 * (double)u ; /* g */ - b[2]= (double)y1 + 1.734375 * (double)u ; /* b */ - b[3]= (double)y2 + 1.375 * (double)v ; /*r*/ - b[4]= (double)y2 - 0.703125 * (double)v -0.34375 * (double)u ; /* g */ - b[5]= (double)y2 + 1.734375 * (double)u ; /* b */ - write(o,&b[0], 6); - } - } - close(o); - close(i); - exit(0); -} |