mmap(start, length, prot, flags, fd, offset);
}
+static inline int test_munmap(void *start, size_t length)
+{
+ return wrapper ? v4l2_munmap(start, length) : munmap(start, length);
+}
+
static void *ptrs[VIDEO_MAX_FRAME][VIDEO_MAX_PLANES];
static int dmabufs[VIDEO_MAX_FRAME][VIDEO_MAX_PLANES];
static struct v4l2_format cur_fmt;
unsigned num_planes = process_buf(buf, planes);
for (unsigned p = 0; p < num_planes; p++)
- munmap(ptrs[i][p], planes[p].length);
+ test_munmap(ptrs[i][p], planes[p].length);
}
return 0;
}
mmap(start, length, prot, flags, fd, offset);
}
+static int test_munmap(void *start, size_t length)
+{
+ return options[OptUseWrapper] ? v4l2_munmap(start, length) :
+ munmap(start, length);
+}
+
void streaming_usage(void)
{
printf("\nVideo Streaming options:\n"
return -1;
}
} else if (b.memory == V4L2_MEMORY_DMABUF) {
- b.bufs[i][j] = test_mmap(NULL, p.length,
+ b.bufs[i][j] = mmap(NULL, p.length,
PROT_READ | PROT_WRITE, MAP_SHARED,
b.fds[i][j], 0);
return -1;
}
} else if (b.memory == V4L2_MEMORY_DMABUF) {
- b.bufs[i][0] = test_mmap(NULL, p.length,
+ b.bufs[i][0] = mmap(NULL, p.length,
PROT_READ | PROT_WRITE, MAP_SHARED,
b.fds[i][0], 0);
return -1;
}
} else if (b.memory == V4L2_MEMORY_DMABUF) {
- b.bufs[i][j] = test_mmap(NULL, p.length,
+ b.bufs[i][j] = mmap(NULL, p.length,
PROT_READ | PROT_WRITE, MAP_SHARED,
b.fds[i][j], 0);
b.planes[i][0].length = buf.length;
buf.bytesused = buf.length;
if (b.memory == V4L2_MEMORY_MMAP) {
- b.bufs[i][0] = mmap(NULL, buf.length,
+ b.bufs[i][0] = test_mmap(NULL, buf.length,
PROT_READ | PROT_WRITE, MAP_SHARED, fd, buf.m.offset);
if (b.bufs[i][0] == MAP_FAILED) {
return -1;
}
} else if (b.memory == V4L2_MEMORY_DMABUF) {
- b.bufs[i][0] = test_mmap(NULL, buf.length,
+ b.bufs[i][0] = mmap(NULL, buf.length,
PROT_READ | PROT_WRITE, MAP_SHARED,
b.fds[i][0], 0);
for (unsigned j = 0; j < b.num_planes; j++) {
if (b.memory == V4L2_MEMORY_USERPTR)
free(b.bufs[i][j]);
- else
+ else if (b.memory == V4L2_MEMORY_DMABUF)
munmap(b.bufs[i][j], b.planes[i][j].length);
+ else
+ test_munmap(b.bufs[i][j], b.planes[i][j].length);
}
}
}