标题:如何把多FILE文件中的图片数据提取出来
作者:陈媛媛
日期:2007-01-08 15:54
内容:
源程序代码如下:
int
to_yuv (FILE *out, int fd, int width, int height)
{
struct video_mbuf vid_buf;
struct video_mmap vid_mmap;
int do_read = 0;
int done = 0;
char *map;
int size;
int num = 0;
double ms_time0, ms_time1;
int tpf = 40; /* 40 ms time per frame (= 25 fps) */
if (ioctl (fd, VIDIOCGMBUF, &vid_buf) == -1) {
do_read = 1;
} else {
fprintf (stderr, "buffsize=%d frames=%d\n",vid_buf.size,vid_buf.frames);
}
if (!do_read) {
map = mmap (0, vid_buf.size, PROT_READ|PROT_WRITE,MAP_SHARED, fd, 0);
if ((unsigned char *)-1 == (unsigned char *)map) {
perror ("mmap()");
return -1;
}
vid_mmap.format = VIDEO_PALETTE_YUV420P;
vid_mmap.frame = 0;
vid_mmap.width = width;
vid_mmap.height =height;
size = (width * height) + (width * height / 2);
fprintf (stderr, "%dx%d bufsize=%d size=%d\n",
width, height, vid_buf.size, size);
printf ("YUV4MPEG%d %d %d\n", width, height, 3);
if (ioctl (fd, VIDIOCMCAPTURE, &vid_mmap) == -1) {
perror ("ioctl VIDIOCMCAPTURE");
munmap (map, vid_buf.size);
return -1;
}
vid_mmap.frame = 1;
if (ioctl (fd, VIDIOCMCAPTURE, &vid_mmap) == -1) {
perror ("ioctl VIDIOCMCAPTURE");
munmap (map, vid_buf.size);
return -1;
}
while (!done) {
&nb ..