summaryrefslogtreecommitdiff
path: root/src/ipa/rpi/cam_helper/meson.build
diff options
context:
space:
mode:
authorNaushir Patuck <naush@raspberrypi.com>2024-05-10 11:02:04 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2024-05-16 16:11:06 +0100
commitb14f06115027abb67f0a1c0767b18899a473a237 (patch)
tree0233700db4d0d0403d5efb3372444cbdef493673 /src/ipa/rpi/cam_helper/meson.build
parent1659e68cdce084ea38d55f51f4664c8c35c27df3 (diff)
include: linux: Add PiSP specific image and config buffer formats
Add the Raspberry Pi 5 PiSP specific compressed Bayer format types 1/2: - V4L2_PIX_FMT_PISP_COMP1_xxx - V4L2_PIX_FMT_PISP_COMP2_xxx Add the Raspberry Pi 5 PiSP Frontend and Backend config formats: - V4L2_META_FMT_RPI_FE_CFG - V4L2_META_FMT_RPI_BE_CFG Add the Raspberry Pi 5 PiSP Frontend statistics format: - V4L2_META_FMT_RPI_FE_STATS The corresponding changes submitted to the linux-media mailing list can be found at: (series "media: raspberrypi: Add support for PiSP Back End") https://lore.kernel.org/linux-media/20240502110503.38412-4-jacopo.mondi@ideasonboard.com/ https://lore.kernel.org/linux-media/20240502110503.38412-5-jacopo.mondi@ideasonboard.com/ and for the DRM mailing at: (patch "[RFC] drm/fourcc: Add RPI modifiers") https://lore.kernel.org/dri-devel/20240226153854.99471-1-jacopo.mondi@ideasonboard.com/ Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/ipa/rpi/cam_helper/meson.build')
0 files changed, 0 insertions, 0 deletions
nclude <libcamera/object.h> #include <libcamera/request.h> #include <libcamera/signal.h> #include <libcamera/stream.h> namespace libcamera { class FrameBuffer; class FrameBufferAllocator; class PipelineHandler; class Request; class CameraConfiguration { public: enum Status { Valid, Adjusted, Invalid, }; using iterator = std::vector<StreamConfiguration>::iterator; using const_iterator = std::vector<StreamConfiguration>::const_iterator; virtual ~CameraConfiguration(); void addConfiguration(const StreamConfiguration &cfg); virtual Status validate() = 0; StreamConfiguration &at(unsigned int index); const StreamConfiguration &at(unsigned int index) const; StreamConfiguration &operator[](unsigned int index) { return at(index); } const StreamConfiguration &operator[](unsigned int index) const { return at(index); } iterator begin(); const_iterator begin() const; iterator end(); const_iterator end() const; bool empty() const; std::size_t size() const; protected: CameraConfiguration(); std::vector<StreamConfiguration> config_; }; class Camera final : public Object, public std::enable_shared_from_this<Camera> { public: static std::shared_ptr<Camera> create(PipelineHandler *pipe, const std::string &name, const std::set<Stream *> &streams); Camera(const Camera &) = delete; Camera &operator=(const Camera &) = delete; const std::string &name() const; Signal<Request *, FrameBuffer *> bufferCompleted; Signal<Request *> requestCompleted; Signal<Camera *> disconnected; int acquire(); int release(); const ControlInfoMap &controls(); const ControlList &properties(); const std::set<Stream *> &streams() const; std::unique_ptr<CameraConfiguration> generateConfiguration(const StreamRoles &roles = {}); int configure(CameraConfiguration *config); Request *createRequest(uint64_t cookie = 0); int queueRequest(Request *request); int start(); int stop(); private: Camera(PipelineHandler *pipe, const std::string &name, const std::set<Stream *> &streams); ~Camera(); class Private; std::unique_ptr<Private> p_; friend class PipelineHandler; void disconnect(); void requestComplete(Request *request); friend class FrameBufferAllocator; int exportFrameBuffers(Stream *stream, std::vector<std::unique_ptr<FrameBuffer>> *buffers); }; } /* namespace libcamera */ #endif /* __LIBCAMERA_CAMERA_H__ */