ipa: libipa: Provide a common base for frame contexts
Provide a common FrameContext as a base for IPA modules to inherit from. This will allow having a common set of parameters for every frame context managed by the FCQueue implementation. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
committed by
Laurent Pinchart
parent
b612496fc4
commit
ef447647b6
@@ -20,6 +20,24 @@ namespace ipa {
|
||||
* \brief Queue of per-frame contexts
|
||||
*/
|
||||
|
||||
/**
|
||||
* \struct FrameContext
|
||||
* \brief Context for a frame
|
||||
*
|
||||
* The frame context stores data specific to a single frame processed by the
|
||||
* IPA module. Each frame processed by the IPA module has a context associated
|
||||
* with it, accessible through the Frame Context Queue.
|
||||
*
|
||||
* Fields in the frame context should reflect values and controls associated
|
||||
* with the specific frame as requested by the application, and as configured by
|
||||
* the hardware. Fields can be read by algorithms to determine if they should
|
||||
* update any specific action for this frame, and finally to update the metadata
|
||||
* control lists when the frame is fully completed.
|
||||
*
|
||||
* \var FrameContext::frame
|
||||
* \brief The frame number
|
||||
*/
|
||||
|
||||
/**
|
||||
* \class FCQueue
|
||||
* \brief A support class for managing FrameContext instances in IPA modules
|
||||
@@ -65,6 +83,10 @@ namespace ipa {
|
||||
* allowed to overflow, which must be ensured by pipeline handlers never
|
||||
* queuing more in-flight requests to the IPA module than the queue size. If an
|
||||
* overflow condition is detected, the queue will log a fatal error.
|
||||
*
|
||||
* IPA module-specific frame context implementations shall inherit from the
|
||||
* FrameContext base class to support the minimum required features for a
|
||||
* FrameContext.
|
||||
*/
|
||||
|
||||
/**
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <vector>
|
||||
|
||||
#include <libcamera/base/log.h>
|
||||
@@ -17,6 +18,15 @@ LOG_DECLARE_CATEGORY(FCQueue)
|
||||
|
||||
namespace ipa {
|
||||
|
||||
template<typename FrameContext>
|
||||
class FCQueue;
|
||||
|
||||
struct FrameContext {
|
||||
private:
|
||||
template<typename T> friend class FCQueue;
|
||||
uint32_t frame;
|
||||
};
|
||||
|
||||
template<typename FrameContext>
|
||||
class FCQueue
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user