summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline/ipu3/imgu.cpp
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-06-27 04:14:48 +0200
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-06-28 14:25:46 +0200
commit1e0cd804f07d126af2e248a54dbb4042d861487b (patch)
treecd2a19b87853fdbb13e473aeb81e36ff36cee935 /src/libcamera/pipeline/ipu3/imgu.cpp
parent003645f5989002c1ee8be582b2ee8bf9228e5e41 (diff)
libcamera: ipu3: imgu: Remove ImgUOutput
The struct ImgUOutput now only contains one member that is in use, the video device. Remove the struct and use the video device directly instead. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/libcamera/pipeline/ipu3/imgu.cpp')
-rw-r--r--src/libcamera/pipeline/ipu3/imgu.cpp51
1 files changed, 21 insertions, 30 deletions
diff --git a/src/libcamera/pipeline/ipu3/imgu.cpp b/src/libcamera/pipeline/ipu3/imgu.cpp
index cbe31023..c4bb6100 100644
--- a/src/libcamera/pipeline/ipu3/imgu.cpp
+++ b/src/libcamera/pipeline/ipu3/imgu.cpp
@@ -54,31 +54,22 @@ int ImgUDevice::init(MediaDevice *media, unsigned int index)
if (ret)
return ret;
- output_.dev = V4L2VideoDevice::fromEntityName(media, name_ + " output");
- ret = output_.dev->open();
+ output_ = V4L2VideoDevice::fromEntityName(media, name_ + " output");
+ ret = output_->open();
if (ret)
return ret;
- output_.pad = PAD_OUTPUT;
- output_.name = "output";
-
- viewfinder_.dev = V4L2VideoDevice::fromEntityName(media,
- name_ + " viewfinder");
- ret = viewfinder_.dev->open();
+ viewfinder_ = V4L2VideoDevice::fromEntityName(media,
+ name_ + " viewfinder");
+ ret = viewfinder_->open();
if (ret)
return ret;
- viewfinder_.pad = PAD_VF;
- viewfinder_.name = "viewfinder";
-
- stat_.dev = V4L2VideoDevice::fromEntityName(media, name_ + " 3a stat");
- ret = stat_.dev->open();
+ stat_ = V4L2VideoDevice::fromEntityName(media, name_ + " 3a stat");
+ ret = stat_->open();
if (ret)
return ret;
- stat_.pad = PAD_STAT;
- stat_.name = "stat";
-
return 0;
}
@@ -159,7 +150,7 @@ int ImgUDevice::configureVideoDevice(V4L2VideoDevice *dev, unsigned int pad,
return ret;
/* No need to apply format to the stat node. */
- if (dev == stat_.dev)
+ if (dev == stat_)
return 0;
*outputFormat = {};
@@ -171,7 +162,7 @@ int ImgUDevice::configureVideoDevice(V4L2VideoDevice *dev, unsigned int pad,
if (ret)
return ret;
- const char *name = dev == output_.dev ? "output" : "viewfinder";
+ const char *name = dev == output_ ? "output" : "viewfinder";
LOG(IPU3, Debug) << "ImgU " << name << " format = "
<< outputFormat->toString();
@@ -197,7 +188,7 @@ int ImgUDevice::allocateBuffers(unsigned int bufferCount)
*
* \todo To be revised when we'll actually use the stat node.
*/
- ret = stat_.dev->importBuffers(bufferCount);
+ ret = stat_->importBuffers(bufferCount);
if (ret < 0) {
LOG(IPU3, Error) << "Failed to allocate ImgU stat buffers";
goto error;
@@ -208,13 +199,13 @@ int ImgUDevice::allocateBuffers(unsigned int bufferCount)
* corresponding stream is active or inactive, as the driver needs
* buffers to be requested on the V4L2 devices in order to operate.
*/
- ret = output_.dev->importBuffers(bufferCount);
+ ret = output_->importBuffers(bufferCount);
if (ret < 0) {
LOG(IPU3, Error) << "Failed to import ImgU output buffers";
goto error;
}
- ret = viewfinder_.dev->importBuffers(bufferCount);
+ ret = viewfinder_->importBuffers(bufferCount);
if (ret < 0) {
LOG(IPU3, Error) << "Failed to import ImgU viewfinder buffers";
goto error;
@@ -235,15 +226,15 @@ void ImgUDevice::freeBuffers()
{
int ret;
- ret = output_.dev->releaseBuffers();
+ ret = output_->releaseBuffers();
if (ret)
LOG(IPU3, Error) << "Failed to release ImgU output buffers";
- ret = stat_.dev->releaseBuffers();
+ ret = stat_->releaseBuffers();
if (ret)
LOG(IPU3, Error) << "Failed to release ImgU stat buffers";
- ret = viewfinder_.dev->releaseBuffers();
+ ret = viewfinder_->releaseBuffers();
if (ret)
LOG(IPU3, Error) << "Failed to release ImgU viewfinder buffers";
@@ -257,19 +248,19 @@ int ImgUDevice::start()
int ret;
/* Start the ImgU video devices. */
- ret = output_.dev->streamOn();
+ ret = output_->streamOn();
if (ret) {
LOG(IPU3, Error) << "Failed to start ImgU output";
return ret;
}
- ret = viewfinder_.dev->streamOn();
+ ret = viewfinder_->streamOn();
if (ret) {
LOG(IPU3, Error) << "Failed to start ImgU viewfinder";
return ret;
}
- ret = stat_.dev->streamOn();
+ ret = stat_->streamOn();
if (ret) {
LOG(IPU3, Error) << "Failed to start ImgU stat";
return ret;
@@ -288,9 +279,9 @@ int ImgUDevice::stop()
{
int ret;
- ret = output_.dev->streamOff();
- ret |= viewfinder_.dev->streamOff();
- ret |= stat_.dev->streamOff();
+ ret = output_->streamOff();
+ ret |= viewfinder_->streamOff();
+ ret |= stat_->streamOff();
ret |= input_->streamOff();
return ret;