/* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2015, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef _IA_CSS_STREAM_H_ #define _IA_CSS_STREAM_H_ #include #include #if !defined(HAS_NO_INPUT_SYSTEM) && !defined(USE_INPUT_SYSTEM_VERSION_2401) #include #endif #include "ia_css_types.h" #include "ia_css_stream_public.h" /** * structure to hold all internal stream related information */ struct ia_css_stream { struct ia_css_stream_config config; struct ia_css_stream_info info; #if !defined(HAS_NO_INPUT_SYSTEM) && !defined(USE_INPUT_SYSTEM_VERSION_2401) rx_cfg_t csi_rx_config; #endif bool reconfigure_css_rx; struct ia_css_pipe *last_pipe; int num_pipes; struct ia_css_pipe **pipes; struct ia_css_pipe *continuous_pipe; struct ia_css_isp_parameters *isp_params_configs; struct ia_css_isp_parameters *per_frame_isp_params_configs; bool cont_capt; bool disable_cont_vf; #ifndef ISP2401 bool stop_copy_preview; #endif bool started; }; /* @brief Get a binary in the stream, which binary has the shading correction. * * @param[in] stream: The stream. * @return The binary which has the shading correction. * */ struct ia_css_binary * ia_css_stream_get_shading_correction_binary(const struct ia_css_stream *stream); struct ia_css_binary * ia_css_stream_get_dvs_binary(const struct ia_css_stream *stream); struct ia_css_binary * ia_css_stream_get_3a_binary(const struct ia_css_stream *stream); unsigned int ia_css_stream_input_format_bits_per_pixel(struct ia_css_stream *stream); bool sh_css_params_set_binning_factor(struct ia_css_stream *stream, unsigned int sensor_binning); void sh_css_invalidate_params(struct ia_css_stream *stream); /* The following functions are used for testing purposes only */ const struct ia_css_fpn_table * ia_css_get_fpn_table(struct ia_css_stream *stream); /* @brief Get a pointer to the shading table. * * @param[in] stream: The stream. * @return The pointer to the shading table. * */ struct ia_css_shading_table * ia_css_get_shading_table(struct ia_css_stream *stream); void ia_css_get_isp_dis_coefficients(struct ia_css_stream *stream, short *horizontal_coefficients, short *vertical_coefficients); void ia_css_get_isp_dvs2_coefficients(struct ia_css_stream *stream, short *hor_coefs_odd_real, short *hor_coefs_odd_imag, short *hor_coefs_even_real, short *hor_coefs_even_imag, short *ver_coefs_odd_real, short *ver_coefs_odd_imag, short *ver_coefs_even_real, short *ver_coefs_even_imag); enum ia_css_err ia_css_stream_isp_parameters_init(struct ia_css_stream *stream); void ia_css_stream_isp_parameters_uninit(struct ia_css_stream *stream); #endif /*_IA_CSS_STREAM_H_*/