summaryrefslogtreecommitdiff
path: root/include/linux/v4l2-common.h
diff options
context:
space:
mode:
authorStefan Klug <stefan.klug@ideasonboard.com>2024-10-08 17:29:40 +0200
committerStefan Klug <stefan.klug@ideasonboard.com>2024-11-13 11:47:06 +0100
commitd0e30e0ffcc4dbe11b57f0b0a9feae88637d9a2a (patch)
tree1c9f0521da3a1e01783541ba96252bb71768010a /include/linux/v4l2-common.h
parentaf0ca816b802166b625fa3bc1ec2499d1a8358ba (diff)
libcamera: Add a DebugMetadata helper
Debug metadata often occurs in places where the metadata control list is not available e.g. in queueRequest() or processStatsBuffer() or even in a class far away from the metadata handling code. It is therefore difficult to add debug metadata without adding lots of boilerplate code. This can be mitigated by recording the metadata and forwarding it to the metadata control list when it becomes available. To solve the issue of code that is far away from the metadata context, add a chaining mechanism to allow loose coupling at runtime. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'include/linux/v4l2-common.h')
0 files changed, 0 insertions, 0 deletions
opt">; using namespace std; namespace { class ConfigurationSet : public CameraTest, public Test { public: ConfigurationSet() : CameraTest("platform/vimc.0 Sensor B") { } protected: int init() override { if (status_ != TestPass) return status_; config_ = camera_->generateConfiguration({ StreamRole::VideoRecording }); if (!config_ || config_->size() != 1) { cout << "Failed to generate default configuration" << endl; return TestFail; } return TestPass; } int run() override { StreamConfiguration &cfg = config_->at(0); if (camera_->acquire()) { cout << "Failed to acquire the camera" << endl; return TestFail; } /* Test that setting the default configuration works. */ if (camera_->configure(config_.get())) { cout << "Failed to set default configuration" << endl; return TestFail; } /* * Test that configuring the camera fails if it is not * acquired, this will also test release and reacquiring * of the camera. */ if (camera_->release()) { cout << "Failed to release the camera" << endl; return TestFail; } if (!camera_->configure(config_.get())) { cout << "Setting configuration on a camera not acquired succeeded when it should have failed" << endl; return TestFail; } if (camera_->acquire()) { cout << "Failed to acquire the camera" << endl; return TestFail; } /* * Test that modifying the default configuration works. Doubling * the default configuration of the VIMC camera is known to * work. */ cfg.size.width *= 2; cfg.size.height *= 2; if (camera_->configure(config_.get())) { cout << "Failed to set modified configuration" << endl; return TestFail; } /* * Test that setting an invalid configuration fails. */ cfg.size = { 0, 0 }; if (!camera_->configure(config_.get())) { cout << "Invalid configuration incorrectly accepted" << endl; return TestFail; } return TestPass; } std::unique_ptr<CameraConfiguration> config_; }; } /* namespace */ TEST_REGISTER(ConfigurationSet)