[libcamera-devel] [PATCH v1 23/23] gst: libcamerasrc: Add a TODO comment

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Feb 12 21:12:27 CET 2020


Hi Nicolas,

On Wed, Feb 12, 2020 at 12:42:02PM -0500, Nicolas Dufresne wrote:
> Le mercredi 12 février 2020 à 02:41 +0200, Laurent Pinchart a écrit :
> > On Tue, Jan 28, 2020 at 10:32:10PM -0500, Nicolas Dufresne wrote:
> > > From: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> > > 
> > > This is to guide upcoming contributors toward what is left to do to get
> > > toward a production element.
> > > 
> > > Signed-off-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> > > ---
> > >  src/gstreamer/gstlibcamerasrc.cpp | 20 ++++++++++++++++++++
> > >  1 file changed, 20 insertions(+)
> > > 
> > > diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
> > > index 947a8bf..878ae2f 100644
> > > --- a/src/gstreamer/gstlibcamerasrc.cpp
> > > +++ b/src/gstreamer/gstlibcamerasrc.cpp
> > > @@ -6,6 +6,26 @@
> > >   * gstlibcamerasrc.cpp - GStreamer Capture Element
> > >   */
> > >  
> > > +/* TODO
> > 
> > s/TODO/\\todo/
> > 
> > > + *  - Implement GstElement::send_event
> > > + *    + Allowing application to send EOS
> > > + *    + Allowing application to use FLUSH/FLUSH_STOP
> > > + *    + Prevent the main thread from accessing streaming thread
> > > + *  - Implement renegotiation (even if slow)
> > > + *  - Implement GstElement::request-new-pad (multi stream)
> > > + *    + Evaluate if a single streaming thread is fine
> > > + *  - Add application driven request (snapshot)
> > > + *  - Add framerate control
> > > + *
> > > + *  Requires new libcamera API:
> > > + *  - Add framerate negotiation support
> > > + *  - Add colorimetry support
> > > + *  - Add timestamp support
> > > + *  - Use unique names to select the camera
> > > + *  - Add GstVideoMeta support (strides and offsets)
> > > + *  - Add buffer importation support
> > 
> > Even if I don't understand most of the items, it's a nice list :-) I'm
> > sure we'll get back to you to discuss individual items, but I would like
> > to already ask about the last one. What is missing for buffer import ?
> 
> I haven't seen any API that ingest a DMABuf, maybe I missed it. But

You can create a FrameBuffer object manually to wrap a set of dmabufs
(one per plane) and use it instead of the FrameBuffer instances created
by the FrameBufferAllocator. The allocator is a side helper, the main
API is designed for the import use case.

> it's a bit pointless to implement importation without strides and
> offset support as this won't be robust (can produce very bad frames).
> So I think it's fine to keep it in that section.

Absolutely. We need strides and offsets for sure.

> > > + */
> > > +
> > >  #include "gstlibcamerasrc.h"
> > >  #include "gstlibcamerapad.h"
> > >  #include "gstlibcameraallocator.h"

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list