On 05/12/2016 07:39 PM, Nikita Orlov wrote:
Hello!
Hi, Nikita
I am decoding h264 via VAAPI, after I have decoded frame in VASurface, I export it to BEIGNET: 1)vaDeriveImage 2)vaAcquireBufferHandle 3)clCreateBufferFromLibvaIntel The problem, that after I call vaDeriveImage, it seems Surface is not more can be accessed by decoder and as future frames are referencing to this Surface, I can`t decode them. I need to release buffer handle and destroy VAImage, before Surface can be accessed by decoder again. Is it ok? Or am I doing something wrong?
[Yakui]: You are right. You need to destroy the VAImage if the surface is used as the decoded frame.
When the surface is exported, it indicates that it will be accessed by the other component. If we still use it for the decoding, it is possible that two components are trying to access it simultaneously.
This is not safe.
By the way, what is difference between Image and Buffer objects? I mean I can export VAImage to Beignet Image or Buffer. Are there any difference in internal intel hardware for these two types of objects?
[Yakui]: There is no difference. All these objects are based on the drm object.
-- Nikita Orlov Skype: nik_stet QQ: 2717846083 _______________________________________________ Libva mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libva
_______________________________________________ Libva mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libva
