/* SPDX-License-Identifier: BSD-2-Clause */ /* * Copyright (C) 2019-2020, Raspberry Pi (Trading) Limited * * camera_mode.h - description of a particular operating mode of a sensor */ #pragma once #include #include // Description of a "camera mode", holding enough information for control // algorithms to adapt their behaviour to the different modes of the camera, // including binning, scaling, cropping etc. #ifdef __cplusplus extern "C" { #endif #define CAMERA_MODE_NAME_LEN 32 struct CameraMode { // bit depth of the raw camera output uint32_t bitdepth; // size in pixels of frames in this mode uint16_t width, height; // size of full resolution uncropped frame ("sensor frame") uint16_t sensorWidth, sensorHeight; // binning factor (1 = no binning, 2 = 2-pixel binning etc.) uint8_t binX, binY; // location of top left pixel in the sensor frame uint16_t cropX, cropY; // scaling factor (so if uncropped, width*scaleX is sensorWidth) double scaleX, scaleY; // scaling of the noise compared to the native sensor mode double noiseFactor; // line time libcamera::utils::Duration lineLength; // any camera transform *not* reflected already in the camera tuning libcamera::Transform transform; // minimum and maximum fame lengths in units of lines uint32_t minFrameLength, maxFrameLength; // sensitivity of this mode double sensitivity; }; #ifdef __cplusplus } #endif