[libcamera-devel] [PATCH v2 10/10] libcamera: pipeline: vimc: add dummy IPA
Paul Elder
paul.elder at ideasonboard.com
Tue Jun 4 17:53:43 CEST 2019
Hi Laurent,
On Tue, Jun 04, 2019 at 03:13:28PM +0300, Laurent Pinchart wrote:
> Hi Paul,
>
> Thank you for the patch.
Thank you for the review.
> On Mon, Jun 03, 2019 at 07:16:37PM -0400, Paul Elder wrote:
> > Make the vimc pipeline handler get the dummy IPA, to show how an IPA can
> > be acquired by a pipeline handler.
> >
> > Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> > ---
> > Changes in v2:
> > - save IPA to pipeline data
> > - no IPA is fatal error
> >
> > src/libcamera/pipeline/vimc.cpp | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp
> > index 78feeb8..f000c21 100644
> > --- a/src/libcamera/pipeline/vimc.cpp
> > +++ b/src/libcamera/pipeline/vimc.cpp
> > @@ -10,10 +10,12 @@
> >
> > #include <libcamera/camera.h>
> > #include <libcamera/ipa/ipa_module_info.h>
> > +#include <libcamera/ipa/ipa_interface.h>
>
> sort() :-)
>
> > #include <libcamera/request.h>
> > #include <libcamera/stream.h>
> >
> > #include "device_enumerator.h"
> > +#include "ipa_manager.h"
> > #include "log.h"
> > #include "media_device.h"
> > #include "pipeline_handler.h"
> > @@ -252,6 +254,15 @@ bool PipelineHandlerVimc::match(DeviceEnumerator *enumerator)
> > if (!media)
> > return false;
> >
> > + IPAManager *ipaManager = IPAManager::instance();
> > + ipa_ = ipaManager->createIPA(this);
>
> You could also write this
>
> ipa_ = IPAManager::instance()->createIPA(this);
>
> > + if (ipa_ == nullptr) {
> > + LOG(VIMC, Error) << "no matching IPA found";
> > + return false;
>
> As the IPA isn't required yet, should we make this a non-fatal error and
> downgrade the message to a warning ? My review of v1 wasn't very clear,
> I meant to ask if it should really be an error, or just a warning. What
> do you think ?
I don't think it should be a fatal error, since it isn't required.
> > + } else {
> > + ipa_->init();
>
> I'm tempted to move the init() call to createIPA(), what do you think ?
I'm not sure. I can't think of much reason for or against.
I suppose, createIPA() is meant to return the IPAInterface as-is
created by the factory, with no other calls to it, so init() should not
be called from createIPA().
> > + }
> > +
> > std::unique_ptr<VimcCameraData> data = utils::make_unique<VimcCameraData>(this);
> >
> > /* Locate and open the capture video node. */
>
Thanks,
Paul
More information about the libcamera-devel
mailing list