libcamera  v0.0.0
Supporting cameras in Linux since 2019
Public Attributes | List of all members
ipa_context_ops Struct Reference

IPA context operations as a set of function pointers. More...

Public Attributes

void(* destroy )(struct ipa_context *ctx)
 Destroy the IPA context created by the module's ipaCreate() function. More...
 
void *(* get_interface )(struct ipa_context *ctx)
 Retrieve the IPAInterface implemented by the ipa_context (optional) More...
 
void(* init )(struct ipa_context *ctx, const struct ipa_settings *settings)
 Initialise the IPA context. More...
 
int(* start )(struct ipa_context *ctx)
 Start the IPA context. More...
 
void(* stop )(struct ipa_context *ctx)
 Stop the IPA context. More...
 
void(* register_callbacks )(struct ipa_context *ctx, const struct ipa_callback_ops *callbacks, void *cb_ctx)
 Register callback operation from the IPA to the pipeline handler. More...
 
void(* configure )(struct ipa_context *ctx, const struct ipa_sensor_info *sensor_info, const struct ipa_stream *streams, unsigned int num_streams, const struct ipa_control_info_map *maps, unsigned int num_maps)
 Configure the IPA stream and sensor settings. More...
 
void(* map_buffers )(struct ipa_context *ctx, const struct ipa_buffer *buffers, size_t num_buffers)
 Map buffers shared between the pipeline handler and the IPA. More...
 
void(* unmap_buffers )(struct ipa_context *ctx, const unsigned int *ids, size_t num_buffers)
 Unmap buffers shared by the pipeline to the IPA. More...
 
void(* process_event )(struct ipa_context *ctx, const struct ipa_operation_data *data)
 Process an event from the pipeline handler. More...
 

Detailed Description

IPA context operations as a set of function pointers.

To allow for isolation of IPA modules in separate processes, the functions defined in the ipa_context_ops structure return only data related to the libcamera side of the operations. In particular, error related to the libcamera side of the IPC may be returned. Data returned by the IPA, including status information, shall be provided through callbacks from the IPA to libcamera.

Member Data Documentation

◆ configure

ipa_context_ops::configure

Configure the IPA stream and sensor settings.

Parameters
[in]ctxThe IPA context
See also
libcamera::IPAInterface::configure()

◆ destroy

ipa_context_ops::destroy

Destroy the IPA context created by the module's ipaCreate() function.

Parameters
[in]ctxThe IPA context

◆ get_interface

ipa_context_ops::get_interface

Retrieve the IPAInterface implemented by the ipa_context (optional)

Parameters
[in]ctxThe IPA context

IPA modules may implement this function to expose their internal IPAInterface, if any. When implemented, libcamera may at its sole discretion call it and then bypass the ipa_context_ops API by calling the IPAInterface methods directly. IPA modules shall still implement and support the full ipa_context_ops API.

◆ init

ipa_context_ops::init

Initialise the IPA context.

Parameters
[in]ctxThe IPA context
[in]settingsThe IPA initialization settings
See also
libcamera::IPAInterface::init()

◆ map_buffers

ipa_context_ops::map_buffers

Map buffers shared between the pipeline handler and the IPA.

Parameters
[in]ctxThe IPA context
[in]buffersThe buffers to map
[in]num_buffersThe number of entries in the buffers array

The dmabuf file descriptors provided in buffers are borrowed from the caller and are only guaranteed to be valid during the map_buffers() call. Should the callee need to store a copy of the file descriptors, it shall duplicate them first with ::dup().

See also
libcamera::IPAInterface::mapBuffers()

◆ process_event

ipa_context_ops::process_event

Process an event from the pipeline handler.

Parameters
[in]ctxThe IPA context
See also
libcamera::IPAInterface::processEvent()

◆ register_callbacks

ipa_context_ops::register_callbacks

Register callback operation from the IPA to the pipeline handler.

Parameters
[in]ctxThe IPA context
[in]callbackThe IPA callback operations
[in]cb_ctxThe callback context, passed to all callback operations

◆ start

ipa_context_ops::start

Start the IPA context.

See also
libcamera::IPAInterface::start()

◆ stop

ipa_context_ops::stop

Stop the IPA context.

See also
libcamera::IPAInterface::stop()

◆ unmap_buffers

ipa_context_ops::unmap_buffers

Unmap buffers shared by the pipeline to the IPA.

Parameters
[in]ctxThe IPA context
[in]idsThe IDs of the buffers to unmap
[in]num_buffersThe number of entries in the ids array
See also
libcamera::IPAInterface::unmapBuffers()

The documentation for this struct was generated from the following files: