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

Nicolas Dufresne nicolas at ndufresne.ca
Thu Feb 13 15:26:04 CET 2020


Le mer. 12 févr. 2020 15 h 12, Laurent Pinchart <
laurent.pinchart at ideasonboard.com> a écrit :

> 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.
>

Oh, thanks, I didn't figure out. I'll update the comment to clarify.


> > 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.
>

Just in case someone wants to start on this, be aware that currently v4l2
does not allow using data_offset for importation and does not offer
anything else, so if you have a v4l2 driver, we are also limited and must
do very strong validation, otherwise you get a broken image. I can help on
that.


> > > > + */
> > > > +
> > > >  #include "gstlibcamerasrc.h"
> > > >  #include "gstlibcamerapad.h"
> > > >  #include "gstlibcameraallocator.h"
>
> --
> Regards,
>
> Laurent Pinchart
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20200213/2bfb55a0/attachment.htm>


More information about the libcamera-devel mailing list