/* SPDX-License-Identifier: GPL-2.0 */
/*
* camss - format . h
*
* Qualcomm MSM Camera Subsystem - Format helpers
*
* Copyright ( c ) 2023 , The Linux Foundation . All rights reserved .
* Copyright ( c ) 2023 Qualcomm Technologies , Inc .
*/
#ifndef __CAMSS_FORMAT_H__
#define __CAMSS_FORMAT_H__
#include <linux/types.h>
#define PER_PLANE_DATA(plane, h_fract_num, h_fract_den, v_fract_num, v_fract_den, _bpp) \
.hsub[(plane)].numerator = (h_fract_num), \
.hsub[(plane)].denominator = (h_fract_den), \
.vsub[(plane)].numerator = (v_fract_num), \
.vsub[(plane)].denominator = (v_fract_den), \
.bpp[(plane)] = (_bpp)
/*
* struct fract - Represents a fraction
* @ numerator : Store the numerator part of the fraction
* @ denominator : Store the denominator part of the fraction
*/
struct fract {
u8 numerator;
u8 denominator;
};
/*
* struct camss_format_info - ISP media bus format information
* @ code : V4L2 media bus format code
* @ mbus_bpp : Media bus bits per pixel
* @ pixelformat : V4L2 pixel format FCC identifier
* @ planes : Number of planes
* @ hsub : Horizontal subsampling ( for each plane )
* @ vsub : Vertical subsampling ( for each plane )
* @ bpp : Bits per pixel when stored in memory ( for each plane )
*/
struct camss_format_info {
u32 code;
u32 mbus_bpp;
u32 pixelformat;
u8 planes;
struct fract hsub[3 ];
struct fract vsub[3 ];
unsigned int bpp[3 ];
};
struct camss_formats {
unsigned int nformats;
const struct camss_format_info *formats;
};
u8 camss_format_get_bpp(const struct camss_format_info *formats, unsigned int nformats, u32 code);
u32 camss_format_find_code(u32 *code, unsigned int n_code, unsigned int index, u32 req_code);
int camss_format_find_format(u32 code, u32 pixelformat, const struct camss_format_info *formats,
unsigned int nformats);
#endif /* __CAMSS_FORMAT_H__ */
Messung V0.5 in Prozent C=93 H=100 G=96
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-11)
¤
*© Formatika GbR, Deutschland