ipa: Move core IPA interface documentation to a .cpp file

Moving the core.mojom documentation to its corresponding .cpp file
(core_ipa_interface.cpp). This will allow Doxygen to generate the
documentation for IPABuffer, IPASettings and IPAStream structures.
Since the .mojom files are placed in include/ directory, the .cpp file
will live in $sourcedir/src/libcamera/ipa/ - which can also contain
documentation for other mojom generated IPA interfaces in subsequent
commit.

Also hide the constructors in generated IPA interface from doxygen,
via  #ifndef __DOXYGEN__. These constructors provide no major value in
documenting them, instead will spew out doxygen warnings during the
build.

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Umang Jain 2021-05-24 14:50:18 +05:30 committed by Laurent Pinchart
parent b9d55fe69e
commit ff9276cc62
11 changed files with 125 additions and 74 deletions

View file

@ -94,88 +94,16 @@ module libcamera;
uint32 maxFrameLength;
};
/**
* \struct IPABuffer
* \brief Buffer information for the IPA interface
*
* The IPABuffer structure associates buffer memory with a unique ID. It is
* used to map buffers to the IPA with IPAInterface::mapBuffers(), after which
* buffers will be identified by their ID in the IPA interface.
*/
/**
* \var IPABuffer::id
* \brief The buffer unique ID
*
* Buffers mapped to the IPA are identified by numerical unique IDs. The IDs
* are chosen by the pipeline handler to fulfil the following constraints:
*
* - IDs shall be positive integers different than zero
* - IDs shall be unique among all mapped buffers
*
* When buffers are unmapped with IPAInterface::unmapBuffers() their IDs are
* freed and may be reused for new buffer mappings.
*/
/**
* \var IPABuffer::planes
* \brief The buffer planes description
*
* Stores the dmabuf handle and length for each plane of the buffer.
*/
struct IPABuffer {
uint32 id;
[hasFd] array<FrameBuffer.Plane> planes;
};
/**
* \struct IPASettings
* \brief IPA interface initialization settings
*
* The IPASettings structure stores data passed to the IPAInterface::init()
* function. The data contains settings that don't depend on a particular camera
* or pipeline configuration and are valid for the whole life time of the IPA
* interface.
*/
/**
* \var IPASettings::configurationFile
* \brief The name of the IPA configuration file
*
* This field may be an empty string if the IPA doesn't require a configuration
* file.
*/
/**
* \var IPASettings::sensorModel
* \brief The sensor model name
*
* Provides the sensor model name to the IPA.
*/
struct IPASettings {
string configurationFile;
string sensorModel;
};
/**
* \struct IPAStream
* \brief Stream configuration for the IPA interface
*
* The IPAStream structure stores stream configuration parameters needed by the
* IPAInterface::configure() method. It mirrors the StreamConfiguration class
* that is not suitable for this purpose due to not being serializable.
*/
/**
* \var IPAStream::pixelFormat
* \brief The stream pixel format
*/
/**
* \var IPAStream::size
* \brief The stream size in pixels
*/
struct IPAStream {
uint32 pixelFormat;
Size size;

View file

@ -1,5 +1,10 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* \todo Document the interface as src/libcamera/ipa/ipu3_ipa_interface.cpp
* and remove the EXCLUDE_PATTERNS entry in Doxygen.in for its generation.
*/
module ipa.ipu3;
import "include/libcamera/ipa/core.mojom";

View file

@ -1,5 +1,10 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* \todo Document the interface as src/libcamera/ipa/raspberrypi_ipa_interface.cpp
* and remove the EXCLUDE_PATTERNS entry in Doxygen.in for its generation.
*/
module ipa.RPi;
import "include/libcamera/ipa/core.mojom";

View file

@ -1,5 +1,10 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* \todo Document the interface as src/libcamera/ipa/rkisp1_ipa_interface.cpp
* and remove the EXCLUDE_PATTERNS entry in Doxygen.in for its generation.
*/
module ipa.rkisp1;
import "include/libcamera/ipa/core.mojom";

View file

@ -1,5 +1,10 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* \todo Document the interface as src/libcamera/ipa/vimc_ipa_interface.cpp
* and remove the EXCLUDE_PATTERNS entry in Doxygen.in for its generation.
*/
module ipa.vimc;
import "include/libcamera/ipa/core.mojom";