VA plugins?

arnaud tonda arnaud.tonda at gmail.com
Mon Jul 11 02:26:46 PDT 2011


Hi,

two more questions.

the first is for Julien Moutte.

How works fluendo decoders? is there some package to install?


the second one is :

considering using of playbin2 or decodebin, is it possible (is c
source or other) to force the call of ffmpeg plugins?
i have installed gwenole gst_vaapi and it work like a charm in command line.
But when i try to use vaapi in a light c source code project,
vaapiDecode, and vaapiSink are called, but not the "compatible"
demuxers like ffdemux_matroska_webm of ffdemux_mpegts.

i tried to modify the rank of these demuxers and set matroskademux's
rank to none, but in this case no demuxer is found for Mkv in my case.

In fact, one difference in gstreamer debug traces between gst-launch
and my code is that in command line i can see the registration of
ffmpeg typefind functions :


***********
0:00:00.138976669 18418  0x8dba008 INFO      GST_PLUGIN_LOADING
gstplugin.c:800:gst_plugin_load_file: plugin
"/usr/lib/gstreamer-0.10/libgstplaybin.so" loaded
0:00:00.139073349 18418  0x8dba008 INFO     GST_ELEMENT_FACTORY
gstelementfactory.c:361:gst_element_factory_create: creating element
"playbin2" named "play-bin"
0:00:00.673985428 18418  0x8dba008 INFO            GST_TYPEFIND
gsttypefind.c:82:gst_type_find_register: registering typefind function
for fftype_aea
0:00:00.674260228 18418  0x8dba008 INFO            GST_TYPEFIND
gsttypefind.c:82:gst_type_find_register: registering typefind function
for fftype_anm
0:00:00.674385867 18418  0x8dba008 INFO            GST_TYPEFIND
gsttypefind.c:82:gst_type_find_register: registering typefind function
for fftype_apc
0:00:00.674529427 18418  0x8dba008 INFO            GST_TYPEFIND
gsttypefind.c:82:gst_type_find_register: registering typefind function
for fftype_applehttp
0:00:00.674728147 18418  0x8dba008 INFO            GST_TYPEFIND
gsttypefind.c:82:gst_type_find_register: registering typefind function
for fftype_avs
...
***********

this result on the load of the ffmpeg library.

in the case of my code, i never see these lines and so
ffdemux_matroska_webm is never selected.

if anyone can help.

Best regards


2011/7/5 Edward Hervey <bilboed at gmail.com>:
> Hi,
>
> 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
> parsers.
>
>  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
> decode).
>  * 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
>  * ....
>
>   Edward
>
>>
>> >
>> >  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 lists.freedesktop.org
>> > > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> >
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > gstreamer-devel at lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>> Arnaud
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>



-- 
Arnaud Tonda


More information about the gstreamer-devel mailing list