/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (C) 2019, Google Inc. * * libcamera Camera API tests */ #include #include "camera_test.h" #include "test.h" using namespace libcamera; using namespace std; CameraTest::CameraTest(const char *name, bool isolate) { cm_ = new CameraManager(); if (isolate) setenv("LIBCAMERA_IPA_FORCE_ISOLATION", "1", 1); if (cm_->start()) { cerr << "Failed to start camera manager" << endl; status_ = TestFail; return; } camera_ = cm_->get(name); if (!camera_) { cerr << "Can not find '" << name << "' camera" << endl; status_ = TestSkip; return; } /* Sanity check that the camera has streams. */ if (camera_->streams().empty()) { cerr << "Camera has no stream" << endl; status_ = TestFail; return; } status_ = TestPass; } CameraTest::~CameraTest() { if (camera_) { camera_->release(); camera_.reset(); } cm_->stop(); delete cm_; } ter libcamera official repositorygit repository hosting on libcamera.org
summaryrefslogtreecommitdiff
path: root/src/android/camera_hal_config.h
blob: 9df554f9929bb0a9a9ed6f4615ff2c9a917d97cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
 * Copyright (C) 2021, Google Inc.
 *
 * camera_hal_config.h - Camera HAL configuration file manager
 */

#pragma once

#include <map>
#include <string>

#include <libcamera/base/class.h>

struct CameraConfigData {
	int facing = -1;
	int rotation = -1;
};

class CameraHalConfig final : public libcamera::Extensible
{
	LIBCAMERA_DECLARE_PRIVATE()

public:
	CameraHalConfig();

	bool exists() const { return exists_; }
	bool isValid() const { return valid_; }

	const CameraConfigData *cameraConfigData(const std::string &cameraId) const;

private:
	bool exists_;
	bool valid_;
	std::map<std::string, CameraConfigData> cameras_;

	int parseConfigurationFile();
};