summaryrefslogtreecommitdiff
path: root/include/android/metadata
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-07-18 09:15:58 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-07-28 13:47:50 +0300
commitc1597f989654618f782012104f547b367082fa3e (patch)
tree7cbf0a2ff11609d0dbe60d145711f67a0f606ff6 /include/android/metadata
parent735f0ffeaac736f91c35774e575b1280ba868d69 (diff)
ipa: raspberrypi: Use YamlParser to replace dependency on boost
The Raspberry Pi IPA module depends on boost only to parse the JSON tuning data files. As libcamera depends on libyaml, use the YamlParser class to parse those files and drop the dependency on boost. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Diffstat (limited to 'include/android/metadata')
0 files changed, 0 insertions, 0 deletions
an class="hl ppc"> #include "libcamera/internal/log.h" using namespace libcamera; LOG_DECLARE_CATEGORY(HAL) class CameraBuffer::Private : public Extensible::Private, public libcamera::MappedBuffer { LIBCAMERA_DECLARE_PUBLIC(CameraBuffer) public: Private(CameraBuffer *cameraBuffer, buffer_handle_t camera3Buffer, int flags); ~Private(); unsigned int numPlanes() const; Span<uint8_t> plane(unsigned int plane); size_t jpegBufferSize(size_t maxJpegBufferSize) const; }; CameraBuffer::Private::Private(CameraBuffer *cameraBuffer, buffer_handle_t camera3Buffer, int flags) : Extensible::Private(cameraBuffer) { maps_.reserve(camera3Buffer->numFds); error_ = 0; for (int i = 0; i < camera3Buffer->numFds; i++) { if (camera3Buffer->data[i] == -1) continue; off_t length = lseek(camera3Buffer->data[i], 0, SEEK_END); if (length < 0) { error_ = -errno; LOG(HAL, Error) << "Failed to query plane length"; break; } void *address = mmap(nullptr, length, flags, MAP_SHARED, camera3Buffer->data[i], 0); if (address == MAP_FAILED) { error_ = -errno; LOG(HAL, Error) << "Failed to mmap plane"; break; } maps_.emplace_back(static_cast<uint8_t *>(address), static_cast<size_t>(length)); } } CameraBuffer::Private::~Private() { } unsigned int CameraBuffer::Private::numPlanes() const { return maps_.size(); } Span<uint8_t> CameraBuffer::Private::plane(unsigned int plane) { if (plane >= maps_.size()) return {}; return maps_[plane]; } size_t CameraBuffer::Private::jpegBufferSize(size_t maxJpegBufferSize) const { return std::min<unsigned int>(maps_[0].size(), maxJpegBufferSize); } PUBLIC_CAMERA_BUFFER_IMPLEMENTATION