diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-08-18 03:21:06 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-08-21 16:20:46 +0300 |
commit | 6f09680b256025923cedd50b5fd1a878af2dffd4 (patch) | |
tree | 840b340840347c50fc279f54a397f5d8dd608fc2 /src/qcam/main_window.cpp | |
parent | 93802f600cf4c3bf15c9d044b980927615e800f4 (diff) |
qcam: Replace MappedBuffer with Span<uint8_t>
The MappedBuffer structure is a custom container that binds a data
pointer with a length. This is exactly what Span is. Use it instead.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/qcam/main_window.cpp')
-rw-r--r-- | src/qcam/main_window.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp index 39d034de..1adaae60 100644 --- a/src/qcam/main_window.cpp +++ b/src/qcam/main_window.cpp @@ -474,7 +474,8 @@ int MainWindow::startCapture() const FrameBuffer::Plane &plane = buffer->planes().front(); void *memory = mmap(NULL, plane.length, PROT_READ, MAP_SHARED, plane.fd.fd(), 0); - mappedBuffers_[buffer.get()] = { memory, plane.length }; + mappedBuffers_[buffer.get()] = { static_cast<uint8_t *>(memory), + plane.length }; /* Store buffers on the free list. */ freeBuffers_[stream].enqueue(buffer.get()); @@ -537,8 +538,8 @@ error: requests_.clear(); for (auto &iter : mappedBuffers_) { - const MappedBuffer &buffer = iter.second; - munmap(buffer.memory, buffer.size); + const Span<uint8_t> &buffer = iter.second; + munmap(buffer.data(), buffer.size()); } mappedBuffers_.clear(); @@ -573,8 +574,8 @@ void MainWindow::stopCapture() camera_->requestCompleted.disconnect(this, &MainWindow::requestComplete); for (auto &iter : mappedBuffers_) { - const MappedBuffer &buffer = iter.second; - munmap(buffer.memory, buffer.size); + const Span<uint8_t> &buffer = iter.second; + munmap(buffer.data(), buffer.size()); } mappedBuffers_.clear(); @@ -673,10 +674,10 @@ void MainWindow::processRaw(FrameBuffer *buffer, "DNG Files (*.dng)"); if (!filename.isEmpty()) { - const MappedBuffer &mapped = mappedBuffers_[buffer]; + const Span<uint8_t> &mapped = mappedBuffers_[buffer]; DNGWriter::write(filename.toStdString().c_str(), camera_.get(), rawStream_->configuration(), metadata, buffer, - mapped.memory); + mapped.data()); } #endif @@ -753,7 +754,7 @@ void MainWindow::processViewfinder(FrameBuffer *buffer) << "fps:" << Qt::fixed << qSetRealNumberPrecision(2) << fps; /* Render the frame on the viewfinder. */ - viewfinder_->render(buffer, &mappedBuffers_[buffer]); + viewfinder_->render(buffer, mappedBuffers_[buffer]); } void MainWindow::queueRequest(FrameBuffer *buffer) |