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] | ctx | The 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] | ctx | The IPA context

## get_interface

ipa_context_ops::get_interface

Retrieve the IPAInterface implemented by the ipa_context (optional)

Parameters

  [in] | ctx | The 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] | ctx | The IPA context
  [in] | settings | The 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] | ctx | The IPA context
  [in] | buffers | The buffers to map
  [in] | num_buffers | The 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] | ctx | The 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] | ctx | The IPA context
  [in] | callback | The IPA callback operations
  [in] | cb_ctx | The 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] | ctx | The IPA context
  [in] | ids | The IDs of the buffers to unmap
  [in] | num_buffers | The number of entries in the ids array

See also
  libcamera::IPAInterface::unmapBuffers()

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

- include/libcamera/ipa/ipa_interface.h
- src/libcamera/ipa_interface.cpp