Deal with video/x-raw(memory:VASurface)

Gwenole Beauchesne gb.devel at gmail.com
Mon Dec 16 01:03:38 PST 2013


Hi,

2013/12/13 Sebastian Dröge <sebastian at centricular.com>:
> On Do, 2013-12-12 at 04:44 -0800, adrien_sch wrote:
>> Hey guys,
>>
>> I'm exploring the vaapi plugins in 1.2 and I wanted to add few "standard"
>> element after the vaapidecode or the vaapipostproc element.
>>
>> For example :
>> filesrc location=/path/to/file ! demux ! h264parse ! vaapidecode !
>> vaapipostproc format=2 ! videoconvert ! videomixer ! videoconvert !
>> xvimagesink
>>
>> The result of this pipeline is that the negociation failed between
>> vaapipostproc and videomixer.
>>
>> One thing that I don't understand, is why the src pad of vaapipostproc is :
>> video/x-raw(memory:VASurface) format=I420 ? Why this feature doesn't allow
>> to the videoconvert element to convert the stream ? What can I do to resolve
>> this ?
>>
>> I was expecting that format=2 (I420) will result of a "standard" stream,
>> usable by every "standard" element, as the omx decode element does.
>
> vaapipostproc seems to be able to only output VASurface memory, so can't
> be used by normal, software GStreamer elements. Only by elements that
> understand VAAPI.
>
> This should be possible to fix in gstreamer-vaapi in the same way it is
> done in the decoder currently. The element should correctly do the
> GStreamer caps negotiation, and if downstream does not know anything
> about VAAPI it should provide memory that can be used by these elements.
>
> Best would be to file a bug about that at http://bugzilla.gnome.org
> against gstreamer-vaapi. There's nothing you can do on the pipeline side
> there to fix that, this has to be fixed in the gstreamer-vaapi code.

For reference, there is actually a bug report for that already. :)
<https://bugzilla.gnome.org/show_bug.cgi?id=720311>
This will be enough for GStreamer >= 1.2 + Intel hardware or any other
that supports vaDeriveImage(). Otherwise, proper fix is scheduled for
1.4 (the read or write "first" thing).

Alternative is the following to cover this functionality back to 1.0.
I am undecided yet for 0.10 (just consider "no" by default):
<https://bugzilla.gnome.org/show_bug.cgi?id=720174>

Regards,
Gwenole.


More information about the gstreamer-devel mailing list