Files
external_libcamera/src/ipa/libipa/ipa_interface_wrapper.h
Laurent Pinchart f934fd1cb9 libcamera: Move IPA headers from include/ipa/ to include/libcamera/ipa/
The IPA headers are installed into $prefix/include/libcamera/ipa/, but
are located in the source tree in include/ipa/. This requires files
within libcamera to include them with

 #include <ipa/foo.h>

while a third party IPA would need to use

 #include <libcamera/ipa/foo.h>

Not only is this inconsistent, it can create issues later if IPA headers
need to include each other, as the first form of include directive
wouldn't be valid once the headers are installed.

Fix the problem by moving the IPA headers to include/libcamera/ipa/.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Jacopo Mondi <jacopo@jmondi.org>
2020-05-16 03:38:47 +03:00

62 lines
1.8 KiB
C++

/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2019, Google Inc.
*
* ipa_interface_wrapper.h - Image Processing Algorithm interface wrapper
*/
#ifndef __LIBCAMERA_IPA_INTERFACE_WRAPPER_H__
#define __LIBCAMERA_IPA_INTERFACE_WRAPPER_H__
#include <memory>
#include <libcamera/ipa/ipa_interface.h>
#include "libcamera/internal/control_serializer.h"
namespace libcamera {
class IPAInterfaceWrapper : public ipa_context
{
public:
IPAInterfaceWrapper(std::unique_ptr<IPAInterface> interface);
private:
static void destroy(struct ipa_context *ctx);
static void *get_interface(struct ipa_context *ctx);
static void init(struct ipa_context *ctx,
const struct ipa_settings *settings);
static int start(struct ipa_context *ctx);
static void stop(struct ipa_context *ctx);
static void register_callbacks(struct ipa_context *ctx,
const struct ipa_callback_ops *callbacks,
void *cb_ctx);
static 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);
static void map_buffers(struct ipa_context *ctx,
const struct ipa_buffer *c_buffers,
size_t num_buffers);
static void unmap_buffers(struct ipa_context *ctx,
const unsigned int *ids,
size_t num_buffers);
static void process_event(struct ipa_context *ctx,
const struct ipa_operation_data *data);
static const struct ipa_context_ops operations_;
void queueFrameAction(unsigned int frame, const IPAOperationData &data);
std::unique_ptr<IPAInterface> ipa_;
const struct ipa_callback_ops *callbacks_;
void *cb_ctx_;
ControlSerializer serializer_;
};
} /* namespace libcamera */
#endif /* __LIBCAMERA_IPA_INTERFACE_WRAPPER_H__ */