- 论坛徽章:
- 0
|
回复 1# idolspawn
楼主,你好,我现在做视频采集也碰到这种错误提示,下面是我的代码:
//map the buffers between driver and approcation
unsigned int i;
for (i = 0; i < reqbuf.count; i++)
{
struct v4l2_buffer buffer;
CLEAR(buffer);
buffer.type = reqbuf.type;
buffer.memory = V4L2_MEMORY_MMAP;
buffer.index = i;
// buffer.length = img_width*img_height*2;
if (ioctl (fd, VIDIOC_QUERYBUF, &buffer)==-1)
printf (" querybuf failed\n");
else printf ("Querybuf successlly!\n");
// map_start_buf = calloc(1,sizeof(buffer.length));
// if(!map_start_buf) printf("Calloc map_start_buf error\n");
buffers.length = buffer.length; /* remember for munmap() */
buffers.start = mmap (NULL, buffer.length+100,PROT_READ | PROT_WRITE,MAP_PRIVATE,fd, buffer.m.offset);
// printf("%d\n",errno);
if (MAP_FAILED == buffers.start)
// printf ( " Mmap failed\n");
printf("%s,%s\n", errno , strerror(errno));
// exit(errno);
else printf ("Mmap it successlly!\n");
}//end of for
我单步调试后出现
(gdb) p buffers[0]
$1 = {start = 0xb7f45000 <Address 0xb7f45000 out of bounds>, length = 153600}
请问楼主,你是怎样解决这个问题的? |
|