The names used by the IPA interface and the names used for buffer completions handlers in libcamera clash in the use of the term "buffer". For example video device buffer completion handler is called "bufferReady" and the IPA event to ask the IPA to compute parameters are called "fillParamsBuffers". This makes it hard to recognize which function handles video device completion signals and which ones handle the IPA interface events. Rationalize the naming scheme in the IPA interface function and events and the signal handlers in the pipelines, according to the following table. Remove the name "buffer" from the IPA interface events and events handler and reserve it for the buffer completion handlers. Rename the IPA interface events and function to use the 'params' and 'stats' names as well. IPA Interface: - fillParamsBuffer -> computeParams [FUNCTION] - processStatsBuffer -> processStats [FUNCTION] - paramFilled -> paramsComputed [EVENT] Pipeline handler: - bufferReady -> videoBufferReady [BUFFER HANDLER] - paramReady -> paramBufferReady [BUFFER HANDLER] - statReady -> statBufferReady [BUFFER HANDLER] - paramFilled -> paramsComputed [IPA EVENT HANDLER] Cosmetic change only, no functional changes intended. Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Milan Zamazal <mzamazal@redhat.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
56 lines
1.4 KiB
Plaintext
56 lines
1.4 KiB
Plaintext
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
|
|
/*
|
|
* \todo Document the interface and remove the related EXCLUDE_PATTERNS entry.
|
|
*/
|
|
|
|
module ipa.vimc;
|
|
|
|
import "include/libcamera/ipa/core.mojom";
|
|
|
|
const string VimcIPAFIFOPath = "/tmp/libcamera_ipa_vimc_fifo";
|
|
|
|
enum IPAOperationCode {
|
|
IPAOperationNone,
|
|
IPAOperationInit,
|
|
IPAOperationStart,
|
|
IPAOperationStop,
|
|
};
|
|
|
|
[scopedEnum] enum TestFlag {
|
|
Flag1 = 0x1,
|
|
Flag2 = 0x2,
|
|
Flag3 = 0x4,
|
|
Flag4 = 0x8,
|
|
};
|
|
|
|
interface IPAVimcInterface {
|
|
init(libcamera.IPASettings settings,
|
|
IPAOperationCode code,
|
|
[flags] TestFlag inFlags)
|
|
=> (int32 ret, [flags] TestFlag outFlags);
|
|
|
|
configure(libcamera.IPACameraSensorInfo sensorInfo,
|
|
map<uint32, libcamera.IPAStream> streamConfig,
|
|
map<uint32, libcamera.ControlInfoMap> entityControls) => (int32 ret);
|
|
|
|
start() => (int32 ret);
|
|
stop();
|
|
|
|
mapBuffers(array<libcamera.IPABuffer> buffers);
|
|
unmapBuffers(array<uint32> ids);
|
|
|
|
[async] queueRequest(uint32 frame, libcamera.ControlList controls);
|
|
/*
|
|
* The vimc driver doesn't use parameters buffers. To maximize coverage
|
|
* of unit tests that rely on the VIMC pipeline handler, we still define
|
|
* interface functions that mimick how other pipeline handlers typically
|
|
* handle parameters at runtime.
|
|
*/
|
|
[async] computeParams(uint32 frame, uint32 bufferId);
|
|
};
|
|
|
|
interface IPAVimcEventInterface {
|
|
paramsComputed(uint32 bufferId, [flags] TestFlag flags);
|
|
};
|