/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2019-2021, Google Inc. * * camera_request.h - libcamera Android Camera Request Descriptor */ #pragma once #include #include #include #include #include #include #include #include #include #include "camera_metadata.h" class CameraBuffer; class CameraStream; class Camera3RequestDescriptor { public: enum class Status { Success, Error, }; struct StreamBuffer { StreamBuffer(CameraStream *stream, const camera3_stream_buffer_t &buffer, Camera3RequestDescriptor *request); ~StreamBuffer(); StreamBuffer(StreamBuffer &&); StreamBuffer &operator=(StreamBuffer &&); CameraStream *stream; buffer_handle_t *camera3Buffer; std::unique_ptr frameBuffer; libcamera::UniqueFD fence; Status status = Status::Success; libcamera::FrameBuffer *internalBuffer = nullptr; const libcamera::FrameBuffer *srcBuffer = nullptr; std::unique_ptr dstBuffer; Camera3RequestDescriptor *request; private: LIBCAMERA_DISABLE_COPY(StreamBuffer) }; /* Keeps track of streams requiring post-processing. */ std::map pendingStreamsToProcess_ LIBCAMERA_TSA_GUARDED_BY(streamsProcessMutex_); libcamera::Mutex streamsProcessMutex_; Camera3RequestDescriptor(libcamera::Camera *camera, const camera3_capture_request_t *camera3Request); ~Camera3RequestDescriptor(); bool isPending() const { return !complete_; } uint32_t frameNumber_ = 0; std::vector buffers_; CameraMetadata settings_; std::unique_ptr request_; std::unique_ptr resultMetadata_; bool complete_ = false; Status status_ = Status::Success; private: LIBCAMERA_DISABLE_COPY(Camera3RequestDescriptor) }; camera.git/log/src/qcam/assets/feathericons/x.svg'>
blob: 7d5875ca8bc55cc694d351e16203eb462a08d3d0 (plain)
1
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>