summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Expand)Author
2021-12-06libcamera: camera_sensor: Reference test pattern modes by enum typeHirokazu Honda
2021-12-06libcamera: framebuffer: Enable attaching additional data to FrameBufferHirokazu Honda
2021-12-04libcamera: base: shared_fd: Add comparison operatorsLaurent Pinchart
2021-12-04libcamera: base: shared_fd: Rename fd() to get()Laurent Pinchart
2021-12-04libcamera: base: Rename FileDescriptor to SharedFDLaurent Pinchart
2021-12-04libcamera: v4l2_videodevice: Pass FileDescriptor to open()Laurent Pinchart
2021-12-04libcamera: v4l2_videodevice: Use fd for a file descriptorHirokazu Honda
2021-12-04libcamera: v4l2_device: Use UniqueFD for a file descriptorHirokazu Honda
2021-12-04libcamera: media_device: Manage fd by UniqueFDHirokazu Honda
2021-12-04libcamera: process: Manage pipe fds by UniqueFDHirokazu Honda
2021-12-04libcamera: ipc_unixsocket: Use UniqueFD for a file descriptorHirokazu Honda
2021-12-04libcamera: file: Manage fd by UniqueFDHirokazu Honda
2021-12-04libcamera: event_dispatcher_poll: Manage fd by UniqueFDHirokazu Honda
2021-12-03libcamera: base: file_descriptor: Return UniqueFD from dup()Laurent Pinchart
2021-12-03libcamera: base: file_descriptor: Add constructor from UniqueFDHirokazu Honda
2021-12-03libcamera: base: Introduce UniqueFDHirokazu Honda
2021-12-03libcamera: base: file_descriptor: Move inode() function to frame_buffer.cppLaurent Pinchart
2021-12-03libcamera: Move file_descriptor.h to base/Laurent Pinchart
2021-12-03libcamera: Move compiler.h to base/Laurent Pinchart
2021-12-03libcamera: camera_lens: add CameraLens as a member of CameraSensorHan-Lin Chen
2021-12-03libcamera: camera_lens: Add a new class to model a camera lensHan-Lin Chen
2021-12-03libcamera: add model() for retrieving model name in V4L2SubdeviceHan-Lin Chen
2021-12-03ipa: ipu3: Extend ipu3 ipa interface for lens controlsHan-Lin Chen
2021-12-01libcamera: Correct include headers for Mutex classesHirokazu Honda
2021-12-01libcamera: base: Add mutex classes with thread safety annotationsHirokazu Honda
2021-12-01libcamera: base: Add thread safety annotation macrosHirokazu Honda
2021-12-01libcamera: base: Introduce ConditionVariableHirokazu Honda
2021-11-29ipa: rkisp1: Report and use sensor controlsJean-Michel Hautbois
2021-11-29ipa: rkisp1: Pass IPASettings at init callJean-Michel Hautbois
2021-11-24libcamera: object: Avoid argument copies in invokeMethod()Laurent Pinchart
2021-11-24libcamera: ipa: Convert to pragma onceKieran Bingham
2021-11-24libcamera: internal: Convert to pragma onceKieran Bingham
2021-11-24libcamera: base: Convert to pragma onceKieran Bingham
2021-11-24libcamera: Convert to pragma onceKieran Bingham
2021-11-15ipa: ipu3: Extend ipu3 ipa interface for sensor controlsHan-Lin Chen
2021-11-02libcamera: bayer_format: Add PixelFormat conversion helpers to BayerFormat classNaushir Patuck
2021-11-02libcamera: bayer_format: Turn BayerFormat::Packing into scoped enumLaurent Pinchart
2021-11-02include: drm_fourcc: Add R10 and R12 FourCCLaurent Pinchart
2021-10-27libcamera: v4l2_videodevice: provide hasMediaController()Kieran Bingham
2021-10-25libcamera: request: Use external CameraControlValidatorKieran Bingham
2021-10-25libcamera: camera: Create a CameraControlValidatorKieran Bingham
2021-10-15ipa: ipu3: Update camera controls in configure()Jacopo Mondi
2021-10-15libcamera: base: backtrace: Fallback to libunwind for symbolic namesLaurent Pinchart
2021-10-15libcamera: base: backtrace: Use libunwind when availableLaurent Pinchart
2021-10-15libcamera: base: Add Backtrace classLaurent Pinchart
2021-10-15libcamera: geometry: Add Size members to grown or shrink by a marginLaurent Pinchart
2021-10-06ipa: ipu3: Replace ipa::ipu3::algorithms::Ipu3AwbCellJean-Michel Hautbois
2021-09-29libcamera: Simplify header install paths with shortcut variablesLaurent Pinchart
2021-09-28libcamera: Fix base and ipa include dirLaurent Pinchart
2021-09-27libcamera: control_serializer: Separate the handles spaceJacopo Mondi
"hl com"> * @ccm: Custom CCM coefficients and offsets. */ struct bcm2835_isp_custom_ccm { __u32 enabled; struct bcm2835_isp_ccm ccm; }; /** * enum bcm2835_isp_gain_format - format of the gains in the lens shading * tables used with the * V4L2_CID_USER_BCM2835_ISP_LENS_SHADING ctrl. * * @GAIN_FORMAT_U0P8_1: Gains are u0.8 format, starting at 1.0 * @GAIN_FORMAT_U1P7_0: Gains are u1.7 format, starting at 0.0 * @GAIN_FORMAT_U1P7_1: Gains are u1.7 format, starting at 1.0 * @GAIN_FORMAT_U2P6_0: Gains are u2.6 format, starting at 0.0 * @GAIN_FORMAT_U2P6_1: Gains are u2.6 format, starting at 1.0 * @GAIN_FORMAT_U3P5_0: Gains are u3.5 format, starting at 0.0 * @GAIN_FORMAT_U3P5_1: Gains are u3.5 format, starting at 1.0 * @GAIN_FORMAT_U4P10: Gains are u4.10 format, starting at 0.0 */ enum bcm2835_isp_gain_format { GAIN_FORMAT_U0P8_1 = 0, GAIN_FORMAT_U1P7_0 = 1, GAIN_FORMAT_U1P7_1 = 2, GAIN_FORMAT_U2P6_0 = 3, GAIN_FORMAT_U2P6_1 = 4, GAIN_FORMAT_U3P5_0 = 5, GAIN_FORMAT_U3P5_1 = 6, GAIN_FORMAT_U4P10 = 7, }; /** * struct bcm2835_isp_lens_shading - Lens shading tables supplied with the * V4L2_CID_USER_BCM2835_ISP_LENS_SHADING * ctrl. * * @enabled: Enable lens shading. * @grid_cell_size: Size of grid cells in samples (16, 32, 64, 128 or 256). * @grid_width: Width of lens shading tables in grid cells. * @grid_stride: Row to row distance (in grid cells) between grid cells * in the same horizontal location. * @grid_height: Height of lens shading tables in grid cells. * @dmabuf: dmabuf file handle containing the table. * @ref_transform: Reference transform - unsupported, please pass zero. * @corner_sampled: Whether the gains are sampled at the corner points * of the grid cells or in the cell centres. * @gain_format: Format of the gains (see enum &bcm2835_isp_gain_format). */ struct bcm2835_isp_lens_shading { __u32 enabled; __u32 grid_cell_size; __u32 grid_width; __u32 grid_stride; __u32 grid_height; __s32 dmabuf; __u32 ref_transform; __u32 corner_sampled; __u32 gain_format; }; /** * struct bcm2835_isp_black_level - Sensor black level set with the * V4L2_CID_USER_BCM2835_ISP_BLACK_LEVEL ctrl. * * @enabled: Enable black level. * @black_level_r: Black level for red channel. * @black_level_g: Black level for green channels. * @black_level_b: Black level for blue channel. */ struct bcm2835_isp_black_level { __u32 enabled; __u16 black_level_r; __u16 black_level_g; __u16 black_level_b; __u8 padding[2]; /* Unused */ }; /** * struct bcm2835_isp_geq - Green equalisation parameters set with the * V4L2_CID_USER_BCM2835_ISP_GEQ ctrl. * * @enabled: Enable green equalisation. * @offset: Fixed offset of the green equalisation threshold. * @slope: Slope of the green equalisation threshold. */ struct bcm2835_isp_geq { __u32 enabled; __u32 offset; struct bcm2835_isp_rational slope; }; #define BCM2835_NUM_GAMMA_PTS 33 /** * struct bcm2835_isp_gamma - Gamma parameters set with the * V4L2_CID_USER_BCM2835_ISP_GAMMA ctrl. * * @enabled: Enable gamma adjustment. * @X: X values of the points defining the gamma curve. * Values should be scaled to 16 bits. * @Y: Y values of the points defining the gamma curve. * Values should be scaled to 16 bits. */ struct bcm2835_isp_gamma { __u32 enabled; __u16 x[BCM2835_NUM_GAMMA_PTS]; __u16 y[BCM2835_NUM_GAMMA_PTS]; }; /** * enum bcm2835_isp_cdn_mode - Mode of operation for colour denoise. * * @CDN_MODE_FAST: Fast (but lower quality) colour denoise * algorithm, typically used for video recording. * @CDN_HIGH_QUALITY: High quality (but slower) colour denoise * algorithm, typically used for stills capture. */ enum bcm2835_isp_cdn_mode { CDN_MODE_FAST = 0, CDN_MODE_HIGH_QUALITY = 1, }; /** * struct bcm2835_isp_cdn - Colour denoise parameters set with the * V4L2_CID_USER_BCM2835_ISP_CDN ctrl. * * @enabled: Enable colour denoise. * @cdn_mode: Colour denoise operating mode (see enum &bcm2835_isp_cdn_mode) */ struct bcm2835_isp_cdn { __u32 enabled; __u32 mode; }; /** * struct bcm2835_isp_denoise - Denoise parameters set with the * V4L2_CID_USER_BCM2835_ISP_DENOISE ctrl. * * @enabled: Enable denoise. * @constant: Fixed offset of the noise threshold. * @slope: Slope of the noise threshold. * @strength: Denoise strength between 0.0 (off) and 1.0 (maximum). */ struct bcm2835_isp_denoise { __u32 enabled; __u32 constant; struct bcm2835_isp_rational slope; struct bcm2835_isp_rational strength; }; /** * struct bcm2835_isp_sharpen - Sharpen parameters set with the * V4L2_CID_USER_BCM2835_ISP_SHARPEN ctrl. * * @enabled: Enable sharpening. * @threshold: Threshold at which to start sharpening pixels. * @strength: Strength with which pixel sharpening increases. * @limit: Limit to the amount of sharpening applied. */ struct bcm2835_isp_sharpen { __u32 enabled; struct bcm2835_isp_rational threshold; struct bcm2835_isp_rational strength; struct bcm2835_isp_rational limit; }; /** * enum bcm2835_isp_dpc_mode - defective pixel correction (DPC) strength. * * @DPC_MODE_OFF: No DPC. * @DPC_MODE_NORMAL: Normal DPC. * @DPC_MODE_STRONG: Strong DPC. */ enum bcm2835_isp_dpc_mode { DPC_MODE_OFF = 0, DPC_MODE_NORMAL = 1, DPC_MODE_STRONG = 2, }; /** * struct bcm2835_isp_dpc - Defective pixel correction (DPC) parameters set * with the V4L2_CID_USER_BCM2835_ISP_DPC ctrl. * * @enabled: Enable DPC. * @strength: DPC strength (see enum &bcm2835_isp_dpc_mode). */ struct bcm2835_isp_dpc { __u32 enabled; __u32 strength; }; /* * ISP statistics structures. * * The bcm2835_isp_stats structure is generated at the output of the * statistics node. Note that this does not directly map onto the statistics * output of the ISP HW. Instead, the MMAL firmware code maps the HW statistics * to the bcm2835_isp_stats structure. */ #define DEFAULT_AWB_REGIONS_X 16 #define DEFAULT_AWB_REGIONS_Y 12 #define NUM_HISTOGRAMS 2 #define NUM_HISTOGRAM_BINS 128 #define AWB_REGIONS (DEFAULT_AWB_REGIONS_X * DEFAULT_AWB_REGIONS_Y) #define FLOATING_REGIONS 16 #define AGC_REGIONS 16 #define FOCUS_REGIONS 12 /** * struct bcm2835_isp_stats_hist - Histogram statistics * * @r_hist: Red channel histogram. * @g_hist: Combined green channel histogram. * @b_hist: Blue channel histogram. */ struct bcm2835_isp_stats_hist { __u32 r_hist[NUM_HISTOGRAM_BINS]; __u32 g_hist[NUM_HISTOGRAM_BINS]; __u32 b_hist[NUM_HISTOGRAM_BINS]; }; /** * struct bcm2835_isp_stats_region - Region sums. * * @counted: The number of 2x2 bayer tiles accumulated. * @notcounted: The number of 2x2 bayer tiles not accumulated. * @r_sum: Total sum of counted pixels in the red channel for a region. * @g_sum: Total sum of counted pixels in the green channel for a region. * @b_sum: Total sum of counted pixels in the blue channel for a region. */ struct bcm2835_isp_stats_region { __u32 counted; __u32 notcounted; __u64 r_sum; __u64 g_sum; __u64 b_sum; }; /** * struct bcm2835_isp_stats_focus - Focus statistics. * * @contrast_val: Focus measure - accumulated output of the focus filter. * In the first dimension, index [0] counts pixels below a * preset threshold, and index [1] counts pixels above the * threshold. In the second dimension, index [0] uses the * first predefined filter, and index [1] uses the second * predefined filter. * @contrast_val_num: The number of counted pixels in the above accumulation. */ struct bcm2835_isp_stats_focus { __u64 contrast_val[2][2]; __u32 contrast_val_num[2][2]; }; /** * struct bcm2835_isp_stats - ISP statistics. * * @version: Version of the bcm2835_isp_stats structure. * @size: Size of the bcm2835_isp_stats structure. * @hist: Histogram statistics for the entire image. * @awb_stats: Statistics for the regions defined for AWB calculations. * @floating_stats: Statistics for arbitrarily placed (floating) regions. * @agc_stats: Statistics for the regions defined for AGC calculations. * @focus_stats: Focus filter statistics for the focus regions. */ struct bcm2835_isp_stats { __u32 version; __u32 size; struct bcm2835_isp_stats_hist hist[NUM_HISTOGRAMS]; struct bcm2835_isp_stats_region awb_stats[AWB_REGIONS]; struct bcm2835_isp_stats_region floating_stats[FLOATING_REGIONS]; struct bcm2835_isp_stats_region agc_stats[AGC_REGIONS]; struct bcm2835_isp_stats_focus focus_stats[FOCUS_REGIONS]; }; #endif /* __BCM2835_ISP_H_ */