diff options
Diffstat (limited to 'src/camera')
| -rw-r--r-- | src/camera/ov9281.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/camera/ov9281.cpp b/src/camera/ov9281.cpp index 012eab6..b76ecdd 100644 --- a/src/camera/ov9281.cpp +++ b/src/camera/ov9281.cpp @@ -64,6 +64,18 @@ bool OV9281::init() libcamera::StreamConfiguration &streamConfig = m_config->at(0); + std::cout << "supported pixel formats:\n"; + + for (const auto &pixelFormat : streamConfig.formats().pixelformats()) + { + std::cout << "\t" << pixelFormat.toString() << std::endl; + + for (const auto &size : streamConfig.formats().sizes(pixelFormat)) + { + std::cout << "\t\t" << size.toString() << std::endl; + } + } + streamConfig.pixelFormat = OV9281::pixelFormat; streamConfig.bufferCount = OV9281::bufferCount; @@ -177,6 +189,7 @@ void OV9281::onRequestCompleted(libcamera::Request *completed_request) .planes()[i]; size_t size = std::min(metaplane.bytesused, plane.length); + std::cout << "size is: " << size << std::endl; void *data = m_mappedBuffers[plane.fd.get()].first; auto img = std::make_shared<Image>(); @@ -184,13 +197,14 @@ void OV9281::onRequestCompleted(libcamera::Request *completed_request) img->width = imageSize.width; img->height = imageSize.height; - memcpy(img->data, data, size); // img->dataSize = size; // img->stride = stride; img->pixelFormat = pixelFormat; img->counters.measurementCounter = metadata.sequence; img->counters.timestampUs = metadata.timestamp / 1000; img->counters.encoderPosition = RotaryEncoder::instance()->position(); + + memcpy(img->data, data, size); img->rotate(); auto pixels = img->pixels(); |
