libcamera: pipeline: simple: converter: Replace open() with isValid()
Simplify the SimpleConverter interface by opening the M2M device in the constructor. The explicit call to open() is replaced by a check through a new isValid() function, and the unused close() function is removed. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Phi-Bang Nguyen <pnguyen@baylibre.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
parent
4502635b72
commit
fb8c63d69c
3 changed files with 9 additions and 18 deletions
|
@ -39,24 +39,16 @@ SimpleConverter::SimpleConverter(MediaDevice *media)
|
|||
|
||||
m2m_ = std::make_unique<V4L2M2MDevice>((*it)->deviceNode());
|
||||
|
||||
int ret = m2m_->open();
|
||||
if (ret < 0) {
|
||||
m2m_.reset();
|
||||
return;
|
||||
}
|
||||
|
||||
m2m_->output()->bufferReady.connect(this, &SimpleConverter::outputBufferReady);
|
||||
m2m_->capture()->bufferReady.connect(this, &SimpleConverter::captureBufferReady);
|
||||
}
|
||||
|
||||
int SimpleConverter::open()
|
||||
{
|
||||
if (!m2m_)
|
||||
return -ENODEV;
|
||||
|
||||
return m2m_->open();
|
||||
}
|
||||
|
||||
void SimpleConverter::close()
|
||||
{
|
||||
if (m2m_)
|
||||
m2m_->close();
|
||||
}
|
||||
|
||||
std::vector<PixelFormat> SimpleConverter::formats(PixelFormat input)
|
||||
{
|
||||
if (!m2m_)
|
||||
|
|
|
@ -30,8 +30,7 @@ class SimpleConverter
|
|||
public:
|
||||
SimpleConverter(MediaDevice *media);
|
||||
|
||||
int open();
|
||||
void close();
|
||||
bool isValid() const { return m2m_ != nullptr; }
|
||||
|
||||
std::vector<PixelFormat> formats(PixelFormat input);
|
||||
SizeRange sizes(const Size &input);
|
||||
|
|
|
@ -763,9 +763,9 @@ bool SimplePipelineHandler::match(DeviceEnumerator *enumerator)
|
|||
/* Open the converter, if any. */
|
||||
if (converter) {
|
||||
converter_ = std::make_unique<SimpleConverter>(converter);
|
||||
if (converter_->open() < 0) {
|
||||
if (!converter_->isValid()) {
|
||||
LOG(SimplePipeline, Warning)
|
||||
<< "Failed to open converter, disabling format conversion";
|
||||
<< "Failed to create converter, disabling format conversion";
|
||||
converter_.reset();
|
||||
} else {
|
||||
converter_->bufferReady.connect(this, &SimplePipelineHandler::converterDone);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue