[vlc-devel] [PATCH] [RFR] Enable zero-copy support for gstreamer video decoders

Vikram Fugro vikram.fugro at gmail.com
Tue Feb 2 17:26:51 CET 2016


Yes, Sure. So Basically, I have created a separate sink (statically
registered with the decode module), that does the following:

1) Get the output capabilities(caps) from the gstreamer decoder and let the
gstdecode module know the raw video info.(by emitting callbacks)
    The gstdecode module will then translate this into the VLC spec and set
it to the vout.

2) Helps in negotiating the bufferpool/allocator (wrappers around vlc-vout
pictures), by querying the info such as strides/info, alignment
    from the vout, based on the info set in 1). Generally the flow is that
any  gstreamer decoder sends a query downstream, the downstream
    (in our case is sink) parses the query and  responds to the query by
passing in it's pool/allocator. The decoder if satisfied with
    the info provided, will decide to use the pool (got from query) or will
use it's own pool. Apart from the pool, vlcvideosink also advertises that
    it's bufferpool also support the Video metaAPI related to getting the
info that is Video frame specific (like plane Strides/Offsets) from the
GstBuffers,
    and are mapped from the vlc pictures (planes).

3) Pass the buffers to the gstdecode.(by emitting callbacks)


Thanks,
Vikram



On Tue, Feb 2, 2016 at 9:29 PM, Jean-Baptiste Kempf <jb at videolan.org> wrote:

> On 02 Feb, Vikram Fugro wrote :
> > On Tue, Feb 2, 2016 at 2:15 PM, Jean-Baptiste Kempf <jb at videolan.org>
> wrote:
> >
> > > On 29 Jan, Vikram Fugro wrote :
> > > >  modules/codec/Makefile.am                          |   2 +-
> > > >  modules/codec/gstdecode.c                          | 894
> > > ---------------------
> > > >  modules/codec/gstreamer/gstdecode.c                | 883
> > > ++++++++++++++++++++
> > >
> > > You should move that change into a separate commit.
> >
> >     OK. Will create a separate commit for this first.
>
> Cool. :)
>
> > > >  create mode 100644 modules/codec/gstreamer/gstdecode.c
> > > >  create mode 100644
> modules/codec/gstreamer/gstvlcpictureplaneallocator.c
> > > >  create mode 100644
> modules/codec/gstreamer/gstvlcpictureplaneallocator.h
> > > >  create mode 100644 modules/codec/gstreamer/gstvlcvideopool.c
> > > >  create mode 100644 modules/codec/gstreamer/gstvlcvideopool.h
> > > >  create mode 100644 modules/codec/gstreamer/gstvlcvideosink.c
> > > >  create mode 100644 modules/codec/gstreamer/gstvlcvideosink.h
> > >
> > > Some of those files do not have license information.
> > >
> >
> >    Oops! Sorry, completely slipped out my mind.
>
> Thanks.
>
> Btw, can you explain a bit more what this sink is doing?
>
> With my kindest regards,
>
> --
> Jean-Baptiste Kempf
> http://www.jbkempf.com/ - +33 672 704 734
> Sent from my Electronic Device
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20160202/854a5132/attachment.html>


More information about the vlc-devel mailing list