diff options
Diffstat (limited to 'src/qcam/assets/feathericons/download.svg')
0 files changed, 0 insertions, 0 deletions
![]() |
index : libcamera/vivid.git | |
libcamera pipeline handler for VIVID | git repository hosting on libcamera.org |
summaryrefslogtreecommitdiff |
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2019, Google Inc.
*
* camera_device.h - libcamera Android Camera Device
*/
#pragma once
#include <map>
#include <memory>
#include <queue>
#include <vector>
#include <hardware/camera3.h>
#include <libcamera/base/class.h>
#include <libcamera/base/log.h>
#include <libcamera/base/message.h>
#include <libcamera/base/mutex.h>
#include <libcamera/camera.h>
#include <libcamera/framebuffer.h>
#include <libcamera/geometry.h>
#include <libcamera/pixel_format.h>
#include <libcamera/request.h>
#include <libcamera/stream.h>
#include "camera_capabilities.h"
#include "camera_metadata.h"
#include "camera_stream.h"
#include "jpeg/encoder.h"
class Camera3RequestDescriptor;
struct CameraConfigData;
class CameraDevice : protected libcamera::Loggable
{
public:
static std::unique_ptr<CameraDevice> create(unsigned int id,
std::shared_ptr<libcamera::Camera> cam);
~CameraDevice();
int initialize(const CameraConfigData *cameraConfigData);
int open(const hw_module_t *hardwareModule);
void close();
void flush();
unsigned int id() const { return id_; }
camera3_device_t *camera3Device() { return &camera3Device_; }
const CameraCapabilities *capabilities() const { return &capabilities_; }
const std::shared_ptr<libcamera::Camera> &camera() const { return camera_; }
const std::string &maker() const { return maker_; }
const std::string &model() const { return model_; }
int facing() const { return facing_; }
int orientation() const { return orientation_; }
unsigned int maxJpegBufferSize() const;
void setCallbacks(const camera3_callback_ops_t *callbacks);
const camera_metadata_t *getStaticMetadata();
const camera_metadata_t *constructDefaultRequestSettings(int type);
int configureStreams(camera3_stream_configuration_t *stream_list);
int processCaptureRequest(camera3_capture_request_t *request);
void requestComplete(libcamera::Request *request);