libcamera/utils/tuning/libtuning/modules/module.py
Paul Elder b8af2500fa utils: tuning: libtuning: Implement extensible components of libtuning
Implement the extensible components of libtuning. This includes:
- Parsers, for supporting different types of input config file formats
- Generators, for supporting different types of output tuning file
  formats
- Modules, for supporting different tuning modules for different
  algorithms and platforms

No parsers, generators, or modules are actually implemented. Only the
base classes are implemented.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2022-11-25 15:37:30 +09:00

32 lines
1.3 KiB
Python

# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright (C) 2022, Paul Elder <paul.elder@ideasonboard.com>
#
# module.py - Base class for algorithm-specific tuning modules
# @var type Type of the module. Defined in the base module.
# @var out_name The key that will be used for the algorithm in the algorithms
# dictionary in the tuning output file
# @var hr_name Human-readable module name, mostly for debugging
class Module(object):
type = 'base'
hr_name = 'Base Module'
out_name = 'GenericAlgorithm'
def __init__(self):
pass
def validate_config(self, config: dict) -> bool:
raise NotImplementedError
# @brief Do the module's processing
# @param config Full configuration from the input configuration file
# @param images List of images to process
# @param outputs The outputs of all modules that were executed before this
# module. Note that this is an input parameter, and the
# output of this module should be returned directly
# @return Result of the module's processing. It may be empty. None
# indicates failure and that the result should not be used.
def process(self, config: dict, images: list, outputs: dict) -> dict:
raise NotImplementedError