libcamera: ipa: Add support for CameraSensorInfo

Add support for camera sensor information in the libcamera IPA protocol.

Define a new 'struct ipa_sensor_info' structure in the IPA context and
use it to perform translation between the C and the C++ API.

Update the IPAInterface::configure() operation to accept a new
CameraSensorInfo parameter and port all users of that function to
the new interface.

Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Jacopo Mondi
2020-04-24 12:01:49 +02:00
parent ee4bb92aae
commit fd554f9dba
12 changed files with 188 additions and 16 deletions

View File

@@ -29,7 +29,8 @@ public:
int start() override;
void stop() override;
void configure(const std::map<unsigned int, IPAStream> &streamConfig,
void configure(const CameraSensorInfo &sensorInfo,
const std::map<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls) override;
void mapBuffers(const std::vector<IPABuffer> &buffers) override;
void unmapBuffers(const std::vector<unsigned int> &ids) override;
@@ -126,10 +127,11 @@ void IPAProxyThread::stop()
thread_.wait();
}
void IPAProxyThread::configure(const std::map<unsigned int, IPAStream> &streamConfig,
void IPAProxyThread::configure(const CameraSensorInfo &sensorInfo,
const std::map<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls)
{
ipa_->configure(streamConfig, entityControls);
ipa_->configure(sensorInfo, streamConfig, entityControls);
}
void IPAProxyThread::mapBuffers(const std::vector<IPABuffer> &buffers)