summaryrefslogtreecommitdiff
path: root/utils/ipc/meson.build
diff options
context:
space:
mode:
authorEric Curtin <ecurtin@redhat.com>2022-07-19 10:17:46 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-07-28 14:13:50 +0300
commitdc1f4a91dfefa9f86202ab148e05fb901b6e3e73 (patch)
tree652deb1d7018a47be60fe084c6ec0e0baf806106 /utils/ipc/meson.build
parentc13f86704b129636bb6d84f8b8ca37826ded3238 (diff)
cam: sdl_sink: Use libjpeg over SDL2_image
We were using the libjpeg functionality of SDL2_image only, instead just use libjpeg directly to reduce our dependancy count, it is a more commonly available library. Signed-off-by: Eric Curtin <ecurtin@redhat.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'utils/ipc/meson.build')
0 files changed, 0 insertions, 0 deletions
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
/* SPDX-License-Identifier: BSD-2-Clause */
/*
 * Copyright (C) 2021, Raspberry Pi (Trading) Limited
 *
 * cam_helper_ov9281.cpp - camera information for ov9281 sensor
 */

#include <assert.h>

#include "cam_helper.hpp"

using namespace RPiController;

class CamHelperOv9281 : public CamHelper
{
public:
	CamHelperOv9281();
	uint32_t GainCode(double gain) const override;
	double Gain(uint32_t gain_code) const override;
	void GetDelays(int &exposure_delay, int &gain_delay,
		       int &vblank_delay) const override;

private:
	/*
	 * Smallest difference between the frame length and integration time,
	 * in units of lines.
	 */
	static constexpr int frameIntegrationDiff = 4;
};

/*
 * OV9281 doesn't output metadata, so we have to use the "unicam parser" which
 * works by counting frames.
 */

CamHelperOv9281::CamHelperOv9281()
	: CamHelper({}, frameIntegrationDiff)
{
}

uint32_t CamHelperOv9281::GainCode(double gain) const
{
	return static_cast<uint32_t>(gain * 16.0);
}

double CamHelperOv9281::Gain(uint32_t gain_code) const
{
	return static_cast<double>(gain_code) / 16.0;
}

void CamHelperOv9281::GetDelays(int &exposure_delay, int &gain_delay,
				int &vblank_delay) const
{
	/* The driver appears to behave as follows: */
	exposure_delay = 2;
	gain_delay = 2;
	vblank_delay = 2;
}

static CamHelper *Create()
{
	return new CamHelperOv9281();
}

static RegisterCamHelper reg("ov9281", &Create);