summaryrefslogtreecommitdiff
path: root/src/camera/veyeimx287m.cpp
diff options
context:
space:
mode:
authorNikita Kostovsky <nikita@kostovsky.me>2025-11-19 18:42:39 +0100
committerNikita Kostovsky <nikita@kostovsky.me>2025-11-19 18:42:39 +0100
commit0d91425d3b10249aa3942d3151daf0a1e41e7b22 (patch)
treebca3980355f6cda7b6344d21f141b8efb11a993d /src/camera/veyeimx287m.cpp
parent33467d4924e2b7c63316435764c6909e681f7007 (diff)
minor refactoring
Diffstat (limited to 'src/camera/veyeimx287m.cpp')
-rw-r--r--src/camera/veyeimx287m.cpp53
1 files changed, 23 insertions, 30 deletions
diff --git a/src/camera/veyeimx287m.cpp b/src/camera/veyeimx287m.cpp
index 2e4a4aa..6491d9d 100644
--- a/src/camera/veyeimx287m.cpp
+++ b/src/camera/veyeimx287m.cpp
@@ -212,8 +212,8 @@ VeyeIMX287m::~VeyeIMX287m()
}
#ifdef RADXA_ZERO_3E
- for (const auto buffer : buffers) {
- if (munmap(buffer.mem[0], radxa_raw_img_size) < 0) {
+ for (const auto buffer : m_buffers) {
+ if (munmap(buffer.mem, radxa_raw_img_size) < 0) {
DBG("Munmap failed!!.");
}
}
@@ -500,17 +500,13 @@ bool VeyeIMX287m::initCam()
return false;
}
- std::cout << "buffers requested" << std::endl;
-
if (rb.count < BUFFER_COUNT) {
fprintf(stderr, "cannot set cam request buffers\n");
return false;
}
- std::cout << "buffers count is ok: " << rb.count << std::endl;
-
- buffers.resize(rb.count);
+ m_buffers.resize(rb.count);
std::cout << "query buffers" << std::endl;
@@ -529,7 +525,6 @@ bool VeyeIMX287m::initCam()
buf.length = VIDEO_MAX_PLANES;
buf.m.planes = planes;
- std::cout << "run ioctl(VIDIOC_QUERYBUF) for buf #" << i << std::endl;
ret = ioctl(m_cam_fd, VIDIOC_QUERYBUF, &buf);
if (ret < 0) {
@@ -539,23 +534,15 @@ bool VeyeIMX287m::initCam()
return false;
}
- std::cout << "ioctl(VIDIOC_QUERYBUF) is ok: " << std::endl;
-
std::cout << "buffer.length: " << buf.length << std::endl;
std::cout << "buffer.m.offset: " << buf.m.offset << std::endl;
-
- buffers[i].idx = i;
+ std::cout << "buffer.index: " << buf.index << " " << i << std::endl;
const auto length = buf.m.planes[0].length;
const auto offset = buf.m.planes[0].m.mem_offset;
- buffers[i].mem[0] = mmap(0,
- length,
- PROT_READ | PROT_WRITE,
- MAP_SHARED,
- m_cam_fd,
- offset);
+ m_buffers[i].mem = mmap(0, length, PROT_READ | PROT_WRITE, MAP_SHARED, m_cam_fd, offset);
- if (buffers[i].mem[0] == MAP_FAILED) {
+ if (m_buffers[i].mem == MAP_FAILED) {
std::cerr << "mmap() failed: " << errno << " (" << strerror(errno)
<< ")" << std::endl;
std::cerr << "length: " << length << std::endl;
@@ -564,15 +551,17 @@ bool VeyeIMX287m::initCam()
return false;
}
- m_videoBuffers[i] = (uint8_t *) buffers[i].mem[0];
+ m_videoBuffers[i] = (uint8_t *) m_buffers[i].mem;
- buffers[i].size[i] = length;
- buffers[i].padding[i] = 0;
+ auto p1 = (Image::radxa_data_t *) m_videoBuffers[i];
+ auto p2 = (Image::radxa_data_t *) m_buffers[i].mem;
+ if (p1 != p2) {
+ std::cout << "AAAAAAA: " << (void *) p1 << ' ' << (void *) p2 << std::endl;
+ }
+ m_buffers[i].size[i] = length;
+ m_buffers[i].padding[i] = 0;
- printf("Buffer %u/%u mapped at address %p.\n",
- buffers[i].idx,
- i,
- buffers[i].mem[0]);
+ printf("Buffer mapped at address %p.\n", m_buffers[i].mem);
ret = ioctl(m_cam_fd, VIDIOC_QBUF, &buf);
@@ -581,15 +570,11 @@ bool VeyeIMX287m::initCam()
<< strerror(errno) << ")" << std::endl;
return false;
}
-
- std::cout << "ioctl(VIDIOC_QBUF) is OK" << std::endl;
}
fflush(stdout);
fflush(stderr);
- std::cout << "imx287 cam initialized" << std::endl;
-
return true;
}
@@ -628,7 +613,15 @@ void VeyeIMX287m::calcFrameLoop(std::stop_token stopToken)
{
t.start();
+ auto p1 = (void *) m_videoBuffers[bufferIdx];
+ auto p2 = (void *) m_buffers[bufferIdx].mem;
+
+ // if (p1 != p2) {
+ // std::cout << (void *) p1 << ' ' << (void *) p2 << std::endl;
+ // }
+
auto &src = *(Image::radxa_data_t *) m_videoBuffers[bufferIdx];
+ // auto &src = *(Image::radxa_data_t *) buffers[bufferIdx].mem[0];
auto &dst = image.data;
Image::copy(dst, src);