@@ -614,21 +614,19 @@ bool PipelineHandlerIPU3::match(DeviceEnumerator *enumerator)
imgu_dm.add("ipu3-imgu 1 viewfinder");
imgu_dm.add("ipu3-imgu 1 3a stat");
- /*
- * It is safe to acquire both media devices at this point as
- * DeviceEnumerator::search() skips the busy ones for us.
- */
cio2MediaDev_ = enumerator->search(cio2_dm);
if (!cio2MediaDev_)
return false;
- cio2MediaDev_->acquire();
+ if (!cio2MediaDev_->acquire())
+ return false;
imguMediaDev_ = enumerator->search(imgu_dm);
if (!imguMediaDev_)
return false;
- imguMediaDev_->acquire();
+ if (!imguMediaDev_->acquire())
+ return false;
/*
* Disable all links that are enabled by default on CIO2, as camera
@@ -183,7 +183,8 @@ bool PipelineHandlerUVC::match(DeviceEnumerator *enumerator)
if (!media_)
return false;
- media_->acquire();
+ if (!media_->acquire())
+ return false;
std::unique_ptr<UVCCameraData> data = utils::make_unique<UVCCameraData>(this);
@@ -193,7 +193,8 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
if (!media_)
return false;
- media_->acquire();
+ if (!media_->acquire())
+ return false;
std::unique_ptr<VimcCameraData> data = utils::make_unique<VimcCameraData>(this);
@@ -51,7 +51,11 @@ class MediaDeviceLinkTest : public Test
return TestSkip;
}
- dev_->acquire();
+ if (!dev_->acquire()) {
+ cerr << "Unable to acquire media device "
+ << dev_->deviceNode() << endl;
+ return TestSkip;
+ }
if (dev_->open()) {
cerr << "Failed to open media device at "
@@ -46,8 +46,6 @@ int V4L2DeviceTest::init()
if (!media_)
return TestSkip;
- media_->acquire();
-
MediaEntity *entity = media_->getEntityByName("vivid-000-vid-cap");
if (!entity)
return TestSkip;
@@ -61,8 +59,6 @@ int V4L2DeviceTest::init()
void V4L2DeviceTest::cleanup()
{
- media_->release();
-
capture_->streamOff();
capture_->releaseBuffers();
capture_->close();
@@ -45,20 +45,16 @@ int V4L2SubdeviceTest::init()
return TestSkip;
}
- media_->acquire();
-
int ret = media_->open();
if (ret) {
cerr << "Unable to open media device: " << media_->deviceNode()
<< ": " << strerror(ret) << endl;
- media_->release();
return TestSkip;
}
MediaEntity *videoEntity = media_->getEntityByName("Scaler");
if (!videoEntity) {
cerr << "Unable to find media entity 'Scaler'" << endl;
- media_->release();
return TestFail;
}
@@ -67,7 +63,6 @@ int V4L2SubdeviceTest::init()
if (ret) {
cerr << "Unable to open video subdevice "
<< scaler_->entity()->deviceNode() << endl;
- media_->release();
return TestSkip;
}
@@ -76,7 +71,5 @@ int V4L2SubdeviceTest::init()
void V4L2SubdeviceTest::cleanup()
{
- media_->release();
-
delete scaler_;
}