[libcamera-devel] Video recording on PinePhone Re: libcamera on pinephone

Pavel Machek pavel at ucw.cz
Wed Jul 13 00:19:33 CEST 2022


On Tue 2022-07-12 22:56:01, Kieran Bingham wrote:
> Quoting Pavel Machek via libcamera-devel (2022-07-12 22:44:56)
> > Hi!
> > 
> > > build/src/cam/cam  -c /base/i2c-csi/rear-camera at 4c -spixelformat=JPEG,width=1920,height=1080 -C2000 -F/tmp/delme2.jpg
> > > 
> > > somehow work, and result can be decoded using
> > > 
> > > time gst-launch-1.0 filesrc location=delme.unk ! jpegparse ! filesink
> > > location=delme2.unk sync=false
> > > 
> > > or recoverjpeg, but I'm not getting 30fps. Any idea how to debug that?
> > > Cam gives this output:
> > 
> > > 74020.783102 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 2073600
> > > 74020.883095 (10.00 fps) cam0-stream0 seq: 000004 bytesused: 2073600
> > > 74020.949774 (15.00 fps) cam0-stream0 seq: 000006 bytesused: 2073600
> > > 74021.016443 (15.00 fps) cam0-stream0 seq: 000008 bytesused: 2073600
> > > 74021.049787 (29.99 fps) cam0-stream0 seq: 000009 bytesused: 2073600
> > > 74021.116423 (15.01 fps) cam0-stream0 seq: 000011 bytesused: 2073600
> > > 74021.183135 (14.99 fps) cam0-stream0 seq: 000013 bytesused: 2073600
> > 
> > I just noticed that if I don't enable file output, I'm geting nice
> > 30fps. Hmm. I am outputting 60MB/sec, but with 3GB RAM, it should be
> > possible to sustain that for a while...
> > 
> 
> Are you on the 'very latest' libcamera? Laurent merged improvements to
> the gstreamer buffering '8' days ago, which would have an effect in this
> area.

I should update, but I see bad behaviour with src/cam/cam utility,
too, so this should be it.

I'm now playing with file_sink.c. Is it possible that framedata memory
is _extremely_ slow?

I did this instead of file write, and now I have 3fps instead of
15fps. Wow. I thought that 60MB/sec memory throughput should not be a
problem for a modern system, but I may be wrong...


                {
                  unsigned int j, r = 0;
                  unsigned char *p = data.data();                                               
                  unsigned char *p = dummy;
                  for (j = 0; j < length; j++) {
                    r += p[j];
                  }
                  volatile int foo = r;

                  (void) foo;
                }

Best regards,
								Pavel
-- 
People of Russia, stop Putin before his war on Ukraine escalates.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20220713/ddb95814/attachment.sig>


More information about the libcamera-devel mailing list