Message ID | 20210827120757.110615-3-jacopo@jmondi.org |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Hi Jacopo, On Fri, Aug 27, 2021 at 02:07:43PM +0200, Jacopo Mondi wrote: > In order to prepare to updating the Camera controls limits when anew s/prepare to/prepare for/ s/anew/a new/ > camera configuration is applied, split the initControls() function in 2: s/2/two/ > - updateControls() to actually compute controls values > - initControls() to initialize the sensor configuration and call > updateControls > > Update the functions documentation accordingly. > > No functional changes intended. > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Makes sense. Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> > --- > src/libcamera/pipeline/ipu3/ipu3.cpp | 33 ++++++++++++++++++++++++---- > 1 file changed, 29 insertions(+), 4 deletions(-) > > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp > index b321c94e9cb0..885f5ddce139 100644 > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp > @@ -154,6 +154,7 @@ private: > } > > int initControls(IPU3CameraData *data); > + int updateControls(IPU3CameraData *data); > int registerCameras(); > > int allocateBuffers(Camera *camera); > @@ -927,9 +928,11 @@ bool PipelineHandlerIPU3::match(DeviceEnumerator *enumerator) > * \brief Initialize the camera controls > * \param[in] data The camera data > * > - * Initialize the camera controls as the union of the static pipeline handler > - * controls (IPU3Controls) and controls created dynamically from the sensor > - * capabilities. > + * Initialize the camera controls by calculating controls which the pipeline > + * is reponsible for and merge them with the controls computed by the IPA. > + * > + * This function needs data->ipaControls_ to be initialized by the IPA init() > + * function at camera creation time. Always call this function after IPA init(). > * > * \return 0 on success or a negative error code otherwise > */ > @@ -950,8 +953,30 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data) > if (ret) > return ret; > > + return updateControls(data); > +} > + > +/** > + * \brief Update the camera controls > + * \param[in] data The camera data > + * > + * Compute the camera controls by calculating controls which the pipeline > + * is reponsible for and merge them with the controls computed by the IPA. > + * > + * This function needs data->ipaControls_ to be refreshed when a new > + * configuration is applied to the camera by the IPA configure() function. > + * > + * Always call this function after IPA configure() to make sure to have a > + * properly refreshed IPA controls list. > + * > + * \return 0 on success or a negative error code otherwise > + */ > +int PipelineHandlerIPU3::updateControls(IPU3CameraData *data) > +{ > + CameraSensor *sensor = data->cio2_.sensor(); > IPACameraSensorInfo sensorInfo{}; > - ret = sensor->sensorInfo(&sensorInfo); > + > + int ret = sensor->sensorInfo(&sensorInfo); > if (ret) > return ret; > > -- > 2.32.0 >
Hi Jacopo, Thanks for the patch On 8/27/21 5:37 PM, Jacopo Mondi wrote: > In order to prepare to updating the Camera controls limits when anew > camera configuration is applied, split the initControls() function in 2: > - updateControls() to actually compute controls values > - initControls() to initialize the sensor configuration and call > updateControls > > Update the functions documentation accordingly. > > No functional changes intended. > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> > --- > src/libcamera/pipeline/ipu3/ipu3.cpp | 33 ++++++++++++++++++++++++---- > 1 file changed, 29 insertions(+), 4 deletions(-) > > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp > index b321c94e9cb0..885f5ddce139 100644 > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp > @@ -154,6 +154,7 @@ private: > } > > int initControls(IPU3CameraData *data); > + int updateControls(IPU3CameraData *data); > int registerCameras(); > > int allocateBuffers(Camera *camera); > @@ -927,9 +928,11 @@ bool PipelineHandlerIPU3::match(DeviceEnumerator *enumerator) > * \brief Initialize the camera controls > * \param[in] data The camera data > * > - * Initialize the camera controls as the union of the static pipeline handler > - * controls (IPU3Controls) and controls created dynamically from the sensor > - * capabilities. > + * Initialize the camera controls by calculating controls which the pipeline > + * is reponsible for and merge them with the controls computed by the IPA. > + * > + * This function needs data->ipaControls_ to be initialized by the IPA init() > + * function at camera creation time. Always call this function after IPA init(). > * > * \return 0 on success or a negative error code otherwise > */ > @@ -950,8 +953,30 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data) > if (ret) > return ret; > > + return updateControls(data); > +} > + > +/** > + * \brief Update the camera controls > + * \param[in] data The camera data > + * > + * Compute the camera controls by calculating controls which the pipeline > + * is reponsible for and merge them with the controls computed by the IPA. > + * > + * This function needs data->ipaControls_ to be refreshed when a new > + * configuration is applied to the camera by the IPA configure() function. > + * > + * Always call this function after IPA configure() to make sure to have a > + * properly refreshed IPA controls list. > + * > + * \return 0 on success or a negative error code otherwise > + */ > +int PipelineHandlerIPU3::updateControls(IPU3CameraData *data) > +{ > + CameraSensor *sensor = data->cio2_.sensor(); > IPACameraSensorInfo sensorInfo{}; > - ret = sensor->sensorInfo(&sensorInfo); > + > + int ret = sensor->sensorInfo(&sensorInfo); > if (ret) > return ret; >
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index b321c94e9cb0..885f5ddce139 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -154,6 +154,7 @@ private: } int initControls(IPU3CameraData *data); + int updateControls(IPU3CameraData *data); int registerCameras(); int allocateBuffers(Camera *camera); @@ -927,9 +928,11 @@ bool PipelineHandlerIPU3::match(DeviceEnumerator *enumerator) * \brief Initialize the camera controls * \param[in] data The camera data * - * Initialize the camera controls as the union of the static pipeline handler - * controls (IPU3Controls) and controls created dynamically from the sensor - * capabilities. + * Initialize the camera controls by calculating controls which the pipeline + * is reponsible for and merge them with the controls computed by the IPA. + * + * This function needs data->ipaControls_ to be initialized by the IPA init() + * function at camera creation time. Always call this function after IPA init(). * * \return 0 on success or a negative error code otherwise */ @@ -950,8 +953,30 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data) if (ret) return ret; + return updateControls(data); +} + +/** + * \brief Update the camera controls + * \param[in] data The camera data + * + * Compute the camera controls by calculating controls which the pipeline + * is reponsible for and merge them with the controls computed by the IPA. + * + * This function needs data->ipaControls_ to be refreshed when a new + * configuration is applied to the camera by the IPA configure() function. + * + * Always call this function after IPA configure() to make sure to have a + * properly refreshed IPA controls list. + * + * \return 0 on success or a negative error code otherwise + */ +int PipelineHandlerIPU3::updateControls(IPU3CameraData *data) +{ + CameraSensor *sensor = data->cio2_.sensor(); IPACameraSensorInfo sensorInfo{}; - ret = sensor->sensorInfo(&sensorInfo); + + int ret = sensor->sensorInfo(&sensorInfo); if (ret) return ret;
In order to prepare to updating the Camera controls limits when anew camera configuration is applied, split the initControls() function in 2: - updateControls() to actually compute controls values - initControls() to initialize the sensor configuration and call updateControls Update the functions documentation accordingly. No functional changes intended. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> --- src/libcamera/pipeline/ipu3/ipu3.cpp | 33 ++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-)