[libcamera-devel,v2,03/10] libcamera: request: Add PFCError flag
diff mbox series

Message ID 20220805135312.47497-4-jacopo@jmondi.org
State Not Applicable, archived
Headers show
Series
  • libcamera: Align IPU3 and RKISP1 interfaces
Related show

Commit Message

Jacopo Mondi Aug. 5, 2022, 1:53 p.m. UTC
From: Kieran Bingham via libcamera-devel <libcamera-devel@lists.libcamera.org>

Provide a new flag for the Request error state to indicate that a
per-frame control error has occurred. One or more controls set for this
request could not be guaranteed on this frame.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
---
 include/libcamera/request.h | 1 +
 src/libcamera/request.cpp   | 4 ++++
 2 files changed, 5 insertions(+)

Comments

Umang Jain Aug. 11, 2022, 4:55 a.m. UTC | #1
Hi Jacopo,

Thank you for the pathc.

On 8/5/22 19:23, Jacopo Mondi via libcamera-devel wrote:
> From: Kieran Bingham via libcamera-devel <libcamera-devel@lists.libcamera.org>
>
> Provide a new flag for the Request error state to indicate that a
> per-frame control error has occurred. One or more controls set for this
> request could not be guaranteed on this frame.
>
> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>


Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>

> ---
>   include/libcamera/request.h | 1 +
>   src/libcamera/request.cpp   | 4 ++++
>   2 files changed, 5 insertions(+)
>
> diff --git a/include/libcamera/request.h b/include/libcamera/request.h
> index 3304da31200d..9aee81922c91 100644
> --- a/include/libcamera/request.h
> +++ b/include/libcamera/request.h
> @@ -47,6 +47,7 @@ public:
>   	enum ErrorFlag {
>   		NoError = 0,
>   		ControlError = (1 << 0),
> +		PFCError = (1 << 1),
>   	};
>   
>   	using Errors = Flags<ErrorFlag>;
> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
> index 9a808f19fc03..b93eaac75880 100644
> --- a/src/libcamera/request.cpp
> +++ b/src/libcamera/request.cpp
> @@ -346,6 +346,10 @@ void Request::Private::timeout()
>    * Control Error. At least one control was not applied correctly to the camera.
>    * The application should compare the metadata to the requested control values
>    * to check which controls weren't applied.
> + *
> + * \var Request::PFCError
> + * A per-frame-control error has occured. Controls that were expected to be set
> + * during the processing of this request were not processed in time.
>    */
>   
>   /**
Laurent Pinchart Aug. 16, 2022, 3:27 a.m. UTC | #2
Hi Jacopo and Kieran,

Thank you for the patch.

On Fri, Aug 05, 2022 at 03:53:05PM +0200, Jacopo Mondi via libcamera-devel wrote:
> From: Kieran Bingham via libcamera-devel <libcamera-devel@lists.libcamera.org>

Wrong here too.

> Provide a new flag for the Request error state to indicate that a
> per-frame control error has occurred. One or more controls set for this
> request could not be guaranteed on this frame.
> 
> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
> ---
>  include/libcamera/request.h | 1 +
>  src/libcamera/request.cpp   | 4 ++++
>  2 files changed, 5 insertions(+)
> 
> diff --git a/include/libcamera/request.h b/include/libcamera/request.h
> index 3304da31200d..9aee81922c91 100644
> --- a/include/libcamera/request.h
> +++ b/include/libcamera/request.h
> @@ -47,6 +47,7 @@ public:
>  	enum ErrorFlag {
>  		NoError = 0,
>  		ControlError = (1 << 0),
> +		PFCError = (1 << 1),

This answers the question in my review of 01/10 regarding whether we'll
have multiple flags.

>  	};
>  
>  	using Errors = Flags<ErrorFlag>;
> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
> index 9a808f19fc03..b93eaac75880 100644
> --- a/src/libcamera/request.cpp
> +++ b/src/libcamera/request.cpp
> @@ -346,6 +346,10 @@ void Request::Private::timeout()
>   * Control Error. At least one control was not applied correctly to the camera.
>   * The application should compare the metadata to the requested control values
>   * to check which controls weren't applied.
> + *
> + * \var Request::PFCError
> + * A per-frame-control error has occured. Controls that were expected to be set
> + * during the processing of this request were not processed in time.

The documentation needs to clearly explain the difference between
ControlError and PFCError. Introducing PFCError by itself without a
broader per-frame control infrastructure and documentation make me
really uncomfortable.

>   */
>  
>  /**

Patch
diff mbox series

diff --git a/include/libcamera/request.h b/include/libcamera/request.h
index 3304da31200d..9aee81922c91 100644
--- a/include/libcamera/request.h
+++ b/include/libcamera/request.h
@@ -47,6 +47,7 @@  public:
 	enum ErrorFlag {
 		NoError = 0,
 		ControlError = (1 << 0),
+		PFCError = (1 << 1),
 	};
 
 	using Errors = Flags<ErrorFlag>;
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index 9a808f19fc03..b93eaac75880 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -346,6 +346,10 @@  void Request::Private::timeout()
  * Control Error. At least one control was not applied correctly to the camera.
  * The application should compare the metadata to the requested control values
  * to check which controls weren't applied.
+ *
+ * \var Request::PFCError
+ * A per-frame-control error has occured. Controls that were expected to be set
+ * during the processing of this request were not processed in time.
  */
 
 /**