<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le mer. 12 févr. 2020 15 h 12, Laurent Pinchart <<a href="mailto:laurent.pinchart@ideasonboard.com">laurent.pinchart@ideasonboard.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Nicolas,<br>
<br>
On Wed, Feb 12, 2020 at 12:42:02PM -0500, Nicolas Dufresne wrote:<br>
> Le mercredi 12 février 2020 à 02:41 +0200, Laurent Pinchart a écrit :<br>
> > On Tue, Jan 28, 2020 at 10:32:10PM -0500, Nicolas Dufresne wrote:<br>
> > > From: Nicolas Dufresne <<a href="mailto:nicolas.dufresne@collabora.com" target="_blank" rel="noreferrer">nicolas.dufresne@collabora.com</a>><br>
> > > <br>
> > > This is to guide upcoming contributors toward what is left to do to get<br>
> > > toward a production element.<br>
> > > <br>
> > > Signed-off-by: Nicolas Dufresne <<a href="mailto:nicolas.dufresne@collabora.com" target="_blank" rel="noreferrer">nicolas.dufresne@collabora.com</a>><br>
> > > ---<br>
> > >  src/gstreamer/gstlibcamerasrc.cpp | 20 ++++++++++++++++++++<br>
> > >  1 file changed, 20 insertions(+)<br>
> > > <br>
> > > diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp<br>
> > > index 947a8bf..878ae2f 100644<br>
> > > --- a/src/gstreamer/gstlibcamerasrc.cpp<br>
> > > +++ b/src/gstreamer/gstlibcamerasrc.cpp<br>
> > > @@ -6,6 +6,26 @@<br>
> > >   * gstlibcamerasrc.cpp - GStreamer Capture Element<br>
> > >   */<br>
> > >  <br>
> > > +/* TODO<br>
> > <br>
> > s/TODO/\\todo/<br>
> > <br>
> > > + *  - Implement GstElement::send_event<br>
> > > + *    + Allowing application to send EOS<br>
> > > + *    + Allowing application to use FLUSH/FLUSH_STOP<br>
> > > + *    + Prevent the main thread from accessing streaming thread<br>
> > > + *  - Implement renegotiation (even if slow)<br>
> > > + *  - Implement GstElement::request-new-pad (multi stream)<br>
> > > + *    + Evaluate if a single streaming thread is fine<br>
> > > + *  - Add application driven request (snapshot)<br>
> > > + *  - Add framerate control<br>
> > > + *<br>
> > > + *  Requires new libcamera API:<br>
> > > + *  - Add framerate negotiation support<br>
> > > + *  - Add colorimetry support<br>
> > > + *  - Add timestamp support<br>
> > > + *  - Use unique names to select the camera<br>
> > > + *  - Add GstVideoMeta support (strides and offsets)<br>
> > > + *  - Add buffer importation support<br>
> > <br>
> > Even if I don't understand most of the items, it's a nice list :-) I'm<br>
> > sure we'll get back to you to discuss individual items, but I would like<br>
> > to already ask about the last one. What is missing for buffer import ?<br>
> <br>
> I haven't seen any API that ingest a DMABuf, maybe I missed it. But<br>
<br>
You can create a FrameBuffer object manually to wrap a set of dmabufs<br>
(one per plane) and use it instead of the FrameBuffer instances created<br>
by the FrameBufferAllocator. The allocator is a side helper, the main<br>
API is designed for the import use case.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Oh, thanks, I didn't figure out. I'll update the comment to clarify.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
> it's a bit pointless to implement importation without strides and<br>
> offset support as this won't be robust (can produce very bad frames).<br>
> So I think it's fine to keep it in that section.<br>
<br>
Absolutely. We need strides and offsets for sure.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
> > > + */<br>
> > > +<br>
> > >  #include "gstlibcamerasrc.h"<br>
> > >  #include "gstlibcamerapad.h"<br>
> > >  #include "gstlibcameraallocator.h"<br>
<br>
-- <br>
Regards,<br>
<br>
Laurent Pinchart<br>
</blockquote></div></div></div>