VA plugins?

Edward Hervey bilboed at
Tue Jul 5 00:15:23 PDT 2011


On Tue, 2011-07-05 at 00:42 +0200, arnaud tonda wrote:
> I was facing the same problem. the "not negotiated" error. in fact, it
> seems that the gwenole's decoder wan't some mandatory informations on
> demuxer caps (height, width, framerate). it seems that original
> demuxers (matroskademux, mpegtsdemux) don't provide these
> informations. it's not the case if you try to construct a pipeline
> with ffmpeg demuxers like ffdemux_mpegts or ffdemux_matroska_webm.
> with these demuxer the video play fines.

  Adding a 'parsed=True' in the sink pad template caps of the decoder
will normally force decodebin to add a parser before the decoder...
which will automatically get width/height/framerate from the stream and
set it before pushing any data.

  The other alternative is having the decoder or demuxer being 'richer'
and extracting that information itself (it can for 'some' codecs)... but
that would be duplicating the work already done in the standalone

  So, to summarize :
  * Each type of element should ideally only do one task (a demuxer
should demux/deinterleave, a parser should extra bitstream information,
and a decoder should be given stream information and data and just
  * Duplicating bitstream parsing into each element would incurr extra
work and code duplication (and therefore risk of divergence).

  A middle ground solution which is being worked on by Thibault Saunier
and others right now is to write a low-lewel set of bitstream parsing
for various common video formats (mpeg 1/2/4, h264, vc1 maybe) so that
we can have a unique codebase for:
  * Decoder wrappers like vdpau/vaapi to use to parse the stream and
extract some information,
  * Parser elements (which would then just be ligthweight elements
wrapping those parsing methods),
  * Demuxers and muxers, to extra basic information when needed like
frame type if not present, width/height/framerate/par ...,
  * Payloaders/Depayloaders
  * ....


> >
> >  I think Gwenole mentionned some interest in reviving it. If you give
> > more details on the issue you're seeing, he could point you to how to do
> > it (or even fix it ! :)).
> >
> >  Edward
> >
> > >
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > gstreamer-devel at
> > >
> >
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at
> >
> Arnaud
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at

More information about the gstreamer-devel mailing list