libcamera
v0.0.0
Supporting cameras in Linux since 2019
|
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... | |
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.
ipa_context_ops::configure |
Configure the IPA stream and sensor settings.
[in] | ctx | The IPA context |
ipa_context_ops::destroy |
Destroy the IPA context created by the module's ipaCreate() function.
[in] | ctx | The IPA context |
ipa_context_ops::get_interface |
Retrieve the IPAInterface implemented by the ipa_context (optional)
[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.
ipa_context_ops::init |
Initialise the IPA context.
[in] | ctx | The IPA context |
[in] | settings | The IPA initialization settings |
ipa_context_ops::map_buffers |
Map buffers shared between the pipeline handler and the IPA.
[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().
ipa_context_ops::process_event |
Process an event from the pipeline handler.
[in] | ctx | The IPA context |
ipa_context_ops::register_callbacks |
Register callback operation from the IPA to the pipeline handler.
[in] | ctx | The IPA context |
[in] | callback | The IPA callback operations |
[in] | cb_ctx | The callback context, passed to all callback operations |
ipa_context_ops::start |
Start the IPA context.
ipa_context_ops::stop |
Stop the IPA context.
ipa_context_ops::unmap_buffers |
Unmap buffers shared by the pipeline to the IPA.
[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 |