Message ID | 20191025202616.57177-1-jacopo@jmondi.org |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Hi Jacopo, Thanks for the patch. On Fri, Oct 25, 2019 at 10:26:16PM +0200, Jacopo Mondi wrote: > Parse the 'LIBCAMERA_IPA_FORCE_C_API' environment variable that allows > forcing the usage of the IPA C API even if it's possible to short-circuit > it through the ipa_context_ops get_interface() operation. I would add "This is useful for testing the C API". > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> > --- > src/libcamera/ipa_context_wrapper.cpp | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/src/libcamera/ipa_context_wrapper.cpp b/src/libcamera/ipa_context_wrapper.cpp > index 736082e9b068..b178418eb9b8 100644 > --- a/src/libcamera/ipa_context_wrapper.cpp > +++ b/src/libcamera/ipa_context_wrapper.cpp > @@ -9,6 +9,8 @@ > > #include <libcamera/controls.h> > > +#include "utils.h" > + > /** > * \file ipa_context_wrapper.h > * \brief Image Processing Algorithm context wrapper > @@ -41,7 +43,13 @@ namespace libcamera { > IPAContextWrapper::IPAContextWrapper(struct ipa_context *context) > : ctx_(context) > { > - if (ctx_ && ctx_->ops->get_interface) { > + int skipIntf = 0; > + const char *skipIntfEnv = > + utils::secure_getenv("LIBCAMERA_IPA_FORCE_C_API"); > + if (skipIntfEnv) > + skipIntf = !!atoi(skipIntfEnv); > + Let's make it simple. bool forceCApi = !!utils::secure_getenv("LIBCAMERA_IPA_FORCE_C_API"); With this, Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > + if (!skipIntf && ctx_ && ctx_->ops->get_interface) { > intf_ = reinterpret_cast<IPAInterface *>(ctx_->ops->get_interface(ctx_)); > intf_->queueFrameAction.connect(this, &IPAContextWrapper::queueFrameAction); > } else {
diff --git a/src/libcamera/ipa_context_wrapper.cpp b/src/libcamera/ipa_context_wrapper.cpp index 736082e9b068..b178418eb9b8 100644 --- a/src/libcamera/ipa_context_wrapper.cpp +++ b/src/libcamera/ipa_context_wrapper.cpp @@ -9,6 +9,8 @@ #include <libcamera/controls.h> +#include "utils.h" + /** * \file ipa_context_wrapper.h * \brief Image Processing Algorithm context wrapper @@ -41,7 +43,13 @@ namespace libcamera { IPAContextWrapper::IPAContextWrapper(struct ipa_context *context) : ctx_(context) { - if (ctx_ && ctx_->ops->get_interface) { + int skipIntf = 0; + const char *skipIntfEnv = + utils::secure_getenv("LIBCAMERA_IPA_FORCE_C_API"); + if (skipIntfEnv) + skipIntf = !!atoi(skipIntfEnv); + + if (!skipIntf && ctx_ && ctx_->ops->get_interface) { intf_ = reinterpret_cast<IPAInterface *>(ctx_->ops->get_interface(ctx_)); intf_->queueFrameAction.connect(this, &IPAContextWrapper::queueFrameAction); } else {
Parse the 'LIBCAMERA_IPA_FORCE_C_API' environment variable that allows forcing the usage of the IPA C API even if it's possible to short-circuit it through the ipa_context_ops get_interface() operation. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> --- src/libcamera/ipa_context_wrapper.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)