[v2,4/6] pipeline: rpi: Remove disable_startup_frame_drops config option
diff mbox series

Message ID 20250522075244.1198110-5-naush@raspberrypi.com
State New
Headers show
Series
  • Eliminating startup frames
Related show

Commit Message

Naushir Patuck May 22, 2025, 7:48 a.m. UTC
With the previous change to not drop frames in the pipeline handler,
the "disable_startup_frame_drops" pipeline config option is not used.
Remove it, and throw a warning if the option is present in the YAML
config file.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
---
 src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 7 ++++---
 src/libcamera/pipeline/rpi/common/pipeline_base.h   | 5 -----
 src/libcamera/pipeline/rpi/pisp/data/example.yaml   | 5 -----
 src/libcamera/pipeline/rpi/vc4/data/example.yaml    | 5 -----
 4 files changed, 4 insertions(+), 18 deletions(-)

Comments

Jacopo Mondi June 5, 2025, 7:24 a.m. UTC | #1
Hi Naush

On Thu, May 22, 2025 at 08:48:20AM +0100, Naushir Patuck wrote:
> With the previous change to not drop frames in the pipeline handler,
> the "disable_startup_frame_drops" pipeline config option is not used.
> Remove it, and throw a warning if the option is present in the YAML
> config file.
>
> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
> ---
>  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 7 ++++---
>  src/libcamera/pipeline/rpi/common/pipeline_base.h   | 5 -----
>  src/libcamera/pipeline/rpi/pisp/data/example.yaml   | 5 -----
>  src/libcamera/pipeline/rpi/vc4/data/example.yaml    | 5 -----
>  4 files changed, 4 insertions(+), 18 deletions(-)
>
> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> index 3f0b7abdc59a..bef057a70353 100644
> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> @@ -1078,7 +1078,6 @@ void CameraData::enumerateVideoDevices(MediaLink *link, const std::string &front
>  int CameraData::loadPipelineConfiguration()
>  {
>  	config_ = {
> -		.disableStartupFrameDrops = false,
>  		.cameraTimeoutValue = 0,
>  	};
>
> @@ -1115,8 +1114,10 @@ int CameraData::loadPipelineConfiguration()
>
>  	const YamlObject &phConfig = (*root)["pipeline_handler"];
>
> -	config_.disableStartupFrameDrops =
> -		phConfig["disable_startup_frame_drops"].get<bool>(config_.disableStartupFrameDrops);
> +	if (phConfig.contains("disable_startup_frame_drops"))
> +		LOG(RPI, Warning)
> +			<< "The disable_startup_frame_drops key is now deprecated, "
> +			<< "please use FrameMetadata::Status::FrameStartup instead.";

I wonder if the "please use .." might mis-lead people that have to
update their config file. Maybe

			<< "The disable_startup_frame_drops key is now deprecated, "
			<< "startup frames are not identified by the FrameMetadata::Status::FrameStartup flag";

A minor indeed

Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>

Thanks
  j

>
>  	config_.cameraTimeoutValue =
>  		phConfig["camera_timeout_value_ms"].get<unsigned int>(config_.cameraTimeoutValue);
> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h b/src/libcamera/pipeline/rpi/common/pipeline_base.h
> index 6023f9f9d6b3..e27c4f860d1a 100644
> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.h
> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h
> @@ -164,11 +164,6 @@ public:
>  	bool buffersAllocated_;
>
>  	struct Config {
> -		/*
> -		 * Override any request from the IPA to drop a number of startup
> -		 * frames.
> -		 */
> -		bool disableStartupFrameDrops;
>  		/*
>  		 * Override the camera timeout value calculated by the IPA based
>  		 * on frame durations.
> diff --git a/src/libcamera/pipeline/rpi/pisp/data/example.yaml b/src/libcamera/pipeline/rpi/pisp/data/example.yaml
> index d67e654a8b9e..baf03be79bb3 100644
> --- a/src/libcamera/pipeline/rpi/pisp/data/example.yaml
> +++ b/src/libcamera/pipeline/rpi/pisp/data/example.yaml
> @@ -16,11 +16,6 @@
>                  #
>                  # "num_cfe_config_queue": 2,
>
> -                # Override any request from the IPA to drop a number of startup
> -                # frames.
> -                #
> -                # "disable_startup_frame_drops": false,
> -
>                  # Custom timeout value (in ms) for camera to use. This overrides
>                  # the value computed by the pipeline handler based on frame
>                  # durations.
> diff --git a/src/libcamera/pipeline/rpi/vc4/data/example.yaml b/src/libcamera/pipeline/rpi/vc4/data/example.yaml
> index b8e01adeaf40..27e543488d48 100644
> --- a/src/libcamera/pipeline/rpi/vc4/data/example.yaml
> +++ b/src/libcamera/pipeline/rpi/vc4/data/example.yaml
> @@ -29,11 +29,6 @@
>                  #
>                  # "min_total_unicam_buffers": 4,
>
> -                # Override any request from the IPA to drop a number of startup
> -                # frames.
> -                #
> -                # "disable_startup_frame_drops": false,
> -
>                  # Custom timeout value (in ms) for camera to use. This overrides
>                  # the value computed by the pipeline handler based on frame
>                  # durations.
> --
> 2.43.0
>
Naushir Patuck June 5, 2025, 9:33 a.m. UTC | #2
Hi Jacopo,

Thank you for the review for this series!


On Thu, 5 Jun 2025 at 08:24, Jacopo Mondi <jacopo.mondi@ideasonboard.com>
wrote:

> Hi Naush
>
> On Thu, May 22, 2025 at 08:48:20AM +0100, Naushir Patuck wrote:
> > With the previous change to not drop frames in the pipeline handler,
> > the "disable_startup_frame_drops" pipeline config option is not used.
> > Remove it, and throw a warning if the option is present in the YAML
> > config file.
> >
> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
> > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
> > ---
> >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 7 ++++---
> >  src/libcamera/pipeline/rpi/common/pipeline_base.h   | 5 -----
> >  src/libcamera/pipeline/rpi/pisp/data/example.yaml   | 5 -----
> >  src/libcamera/pipeline/rpi/vc4/data/example.yaml    | 5 -----
> >  4 files changed, 4 insertions(+), 18 deletions(-)
> >
> > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> > index 3f0b7abdc59a..bef057a70353 100644
> > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> > @@ -1078,7 +1078,6 @@ void CameraData::enumerateVideoDevices(MediaLink
> *link, const std::string &front
> >  int CameraData::loadPipelineConfiguration()
> >  {
> >       config_ = {
> > -             .disableStartupFrameDrops = false,
> >               .cameraTimeoutValue = 0,
> >       };
> >
> > @@ -1115,8 +1114,10 @@ int CameraData::loadPipelineConfiguration()
> >
> >       const YamlObject &phConfig = (*root)["pipeline_handler"];
> >
> > -     config_.disableStartupFrameDrops =
> > -
>  phConfig["disable_startup_frame_drops"].get<bool>(config_.disableStartupFrameDrops);
> > +     if (phConfig.contains("disable_startup_frame_drops"))
> > +             LOG(RPI, Warning)
> > +                     << "The disable_startup_frame_drops key is now
> deprecated, "
> > +                     << "please use FrameMetadata::Status::FrameStartup
> instead.";
>
> I wonder if the "please use .." might mis-lead people that have to
> update their config file. Maybe
>
>                         << "The disable_startup_frame_drops key is now
> deprecated, "
>                         << "startup frames are not identified by the
> FrameMetadata::Status::FrameStartup flag";
>
> A minor indeed
>
> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
>

Ack, I'll update the message and post a new revision of the series.


>
> Thanks
>   j
>
> >
> >       config_.cameraTimeoutValue =
> >               phConfig["camera_timeout_value_ms"].get<unsigned
> int>(config_.cameraTimeoutValue);
> > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h
> b/src/libcamera/pipeline/rpi/common/pipeline_base.h
> > index 6023f9f9d6b3..e27c4f860d1a 100644
> > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.h
> > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h
> > @@ -164,11 +164,6 @@ public:
> >       bool buffersAllocated_;
> >
> >       struct Config {
> > -             /*
> > -              * Override any request from the IPA to drop a number of
> startup
> > -              * frames.
> > -              */
> > -             bool disableStartupFrameDrops;
> >               /*
> >                * Override the camera timeout value calculated by the IPA
> based
> >                * on frame durations.
> > diff --git a/src/libcamera/pipeline/rpi/pisp/data/example.yaml
> b/src/libcamera/pipeline/rpi/pisp/data/example.yaml
> > index d67e654a8b9e..baf03be79bb3 100644
> > --- a/src/libcamera/pipeline/rpi/pisp/data/example.yaml
> > +++ b/src/libcamera/pipeline/rpi/pisp/data/example.yaml
> > @@ -16,11 +16,6 @@
> >                  #
> >                  # "num_cfe_config_queue": 2,
> >
> > -                # Override any request from the IPA to drop a number of
> startup
> > -                # frames.
> > -                #
> > -                # "disable_startup_frame_drops": false,
> > -
> >                  # Custom timeout value (in ms) for camera to use. This
> overrides
> >                  # the value computed by the pipeline handler based on
> frame
> >                  # durations.
> > diff --git a/src/libcamera/pipeline/rpi/vc4/data/example.yaml
> b/src/libcamera/pipeline/rpi/vc4/data/example.yaml
> > index b8e01adeaf40..27e543488d48 100644
> > --- a/src/libcamera/pipeline/rpi/vc4/data/example.yaml
> > +++ b/src/libcamera/pipeline/rpi/vc4/data/example.yaml
> > @@ -29,11 +29,6 @@
> >                  #
> >                  # "min_total_unicam_buffers": 4,
> >
> > -                # Override any request from the IPA to drop a number of
> startup
> > -                # frames.
> > -                #
> > -                # "disable_startup_frame_drops": false,
> > -
> >                  # Custom timeout value (in ms) for camera to use. This
> overrides
> >                  # the value computed by the pipeline handler based on
> frame
> >                  # durations.
> > --
> > 2.43.0
> >
>

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
index 3f0b7abdc59a..bef057a70353 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
@@ -1078,7 +1078,6 @@  void CameraData::enumerateVideoDevices(MediaLink *link, const std::string &front
 int CameraData::loadPipelineConfiguration()
 {
 	config_ = {
-		.disableStartupFrameDrops = false,
 		.cameraTimeoutValue = 0,
 	};
 
@@ -1115,8 +1114,10 @@  int CameraData::loadPipelineConfiguration()
 
 	const YamlObject &phConfig = (*root)["pipeline_handler"];
 
-	config_.disableStartupFrameDrops =
-		phConfig["disable_startup_frame_drops"].get<bool>(config_.disableStartupFrameDrops);
+	if (phConfig.contains("disable_startup_frame_drops"))
+		LOG(RPI, Warning)
+			<< "The disable_startup_frame_drops key is now deprecated, "
+			<< "please use FrameMetadata::Status::FrameStartup instead.";
 
 	config_.cameraTimeoutValue =
 		phConfig["camera_timeout_value_ms"].get<unsigned int>(config_.cameraTimeoutValue);
diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h b/src/libcamera/pipeline/rpi/common/pipeline_base.h
index 6023f9f9d6b3..e27c4f860d1a 100644
--- a/src/libcamera/pipeline/rpi/common/pipeline_base.h
+++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h
@@ -164,11 +164,6 @@  public:
 	bool buffersAllocated_;
 
 	struct Config {
-		/*
-		 * Override any request from the IPA to drop a number of startup
-		 * frames.
-		 */
-		bool disableStartupFrameDrops;
 		/*
 		 * Override the camera timeout value calculated by the IPA based
 		 * on frame durations.
diff --git a/src/libcamera/pipeline/rpi/pisp/data/example.yaml b/src/libcamera/pipeline/rpi/pisp/data/example.yaml
index d67e654a8b9e..baf03be79bb3 100644
--- a/src/libcamera/pipeline/rpi/pisp/data/example.yaml
+++ b/src/libcamera/pipeline/rpi/pisp/data/example.yaml
@@ -16,11 +16,6 @@ 
                 #
                 # "num_cfe_config_queue": 2,
 
-                # Override any request from the IPA to drop a number of startup
-                # frames.
-                #
-                # "disable_startup_frame_drops": false,
-
                 # Custom timeout value (in ms) for camera to use. This overrides
                 # the value computed by the pipeline handler based on frame
                 # durations.
diff --git a/src/libcamera/pipeline/rpi/vc4/data/example.yaml b/src/libcamera/pipeline/rpi/vc4/data/example.yaml
index b8e01adeaf40..27e543488d48 100644
--- a/src/libcamera/pipeline/rpi/vc4/data/example.yaml
+++ b/src/libcamera/pipeline/rpi/vc4/data/example.yaml
@@ -29,11 +29,6 @@ 
                 #
                 # "min_total_unicam_buffers": 4,
 
-                # Override any request from the IPA to drop a number of startup
-                # frames.
-                #
-                # "disable_startup_frame_drops": false,
-
                 # Custom timeout value (in ms) for camera to use. This overrides
                 # the value computed by the pipeline handler based on frame
                 # durations.