/* 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, }; interface IPAVimcInterface { init(libcamera.IPASettings settings) => (int32 ret); configure(libcamera.IPACameraSensorInfo sensorInfo, map streamConfig, map entityControls) => (int32 ret); start() => (int32 ret); stop(); mapBuffers(array buffers); unmapBuffers(array ids); /* * 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] fillParams(uint32 frame, uint32 bufferId); [async] queueRequest(uint32 frame, libcamera.ControlList controls); }; interface IPAVimcEventInterface { paramsFilled(uint32 bufferId); };