[libcamera-devel] test: camera: Increase runtime for capture test

Message ID 20190611132137.7271-1-niklas.soderlund@ragnatech.se
State Accepted
Commit d9a468aaac2a58d36d0f65ac54aae29e72f2482a
Headers show
Series
  • [libcamera-devel] test: camera: Increase runtime for capture test
Related show

Commit Message

Niklas Söderlund June 11, 2019, 1:21 p.m. UTC
Upstream commit 2978a505aaa981b2 ("media: vimc: stream: fix thread state
before sleep") changes the frame rate when capturing from the vimc raw
capture video nodes. The commit changes the frame rate from thousands of
frames per second to to roughly fifty.

The libcamera capture test was written with the assumption that vimc
would keep providing this fast frame rate and ran for a very short time
to decrease the overall run time of tests. This is no longer possible
and the test fails as it can't capture enough frames in its runtime,
increase the runtime to match the new vimc frame rate.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
---
 test/camera/capture.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Laurent Pinchart June 11, 2019, 1:30 p.m. UTC | #1
Hi Niklas,

Thank you for the patch.

On Tue, Jun 11, 2019 at 03:21:37PM +0200, Niklas Söderlund wrote:
> Upstream commit 2978a505aaa981b2 ("media: vimc: stream: fix thread state
> before sleep") changes the frame rate when capturing from the vimc raw
> capture video nodes. The commit changes the frame rate from thousands of
> frames per second to to roughly fifty.
> 
> The libcamera capture test was written with the assumption that vimc
> would keep providing this fast frame rate and ran for a very short time
> to decrease the overall run time of tests. This is no longer possible
> and the test fails as it can't capture enough frames in its runtime,
> increase the runtime to match the new vimc frame rate.
> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>

:-( I suppose we have no choice.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Is there any chance we could fix it in the kernel ?

> ---
>  test/camera/capture.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp
> index 98e71905531c76fe..7ce247cc482dfe4c 100644
> --- a/test/camera/capture.cpp
> +++ b/test/camera/capture.cpp
> @@ -115,7 +115,7 @@ protected:
>  		EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
>  
>  		Timer timer;
> -		timer.start(100);
> +		timer.start(1000);
>  		while (timer.isRunning())
>  			dispatcher->processEvents();
>
Niklas Söderlund June 11, 2019, 2:05 p.m. UTC | #2
Hi Laurent,

Thanks for your feedback.

On 2019-06-11 16:30:13 +0300, Laurent Pinchart wrote:
> Hi Niklas,
> 
> Thank you for the patch.
> 
> On Tue, Jun 11, 2019 at 03:21:37PM +0200, Niklas Söderlund wrote:
> > Upstream commit 2978a505aaa981b2 ("media: vimc: stream: fix thread state
> > before sleep") changes the frame rate when capturing from the vimc raw
> > capture video nodes. The commit changes the frame rate from thousands of
> > frames per second to to roughly fifty.
> > 
> > The libcamera capture test was written with the assumption that vimc
> > would keep providing this fast frame rate and ran for a very short time
> > to decrease the overall run time of tests. This is no longer possible
> > and the test fails as it can't capture enough frames in its runtime,
> > increase the runtime to match the new vimc frame rate.
> > 
> > Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
> 
> :-( I suppose we have no choice.
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Thanks, pushed to master with your tag.

> 
> Is there any chance we could fix it in the kernel ?

I'm sure we could do something in the kernel. But looking at the code it 
looks like vimc is design to not deliver frames as fast as possible. The 
upstream commit which this patch address seems to be a bug fix. Maybe a 
discussion upstream to introduce a frame rate selection support on which 
supports extremal fast frame rates could be a way forward ?

> 
> > ---
> >  test/camera/capture.cpp | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp
> > index 98e71905531c76fe..7ce247cc482dfe4c 100644
> > --- a/test/camera/capture.cpp
> > +++ b/test/camera/capture.cpp
> > @@ -115,7 +115,7 @@ protected:
> >  		EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> >  
> >  		Timer timer;
> > -		timer.start(100);
> > +		timer.start(1000);
> >  		while (timer.isRunning())
> >  			dispatcher->processEvents();
> >  
> 
> -- 
> Regards,
> 
> Laurent Pinchart

Patch

diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp
index 98e71905531c76fe..7ce247cc482dfe4c 100644
--- a/test/camera/capture.cpp
+++ b/test/camera/capture.cpp
@@ -115,7 +115,7 @@  protected:
 		EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
 
 		Timer timer;
-		timer.start(100);
+		timer.start(1000);
 		while (timer.isRunning())
 			dispatcher->processEvents();