On 12/22/2015 06:51 AM, Julien Isorce wrote:
Hi,
Should the application assume that vaapi is thread safe ? Like for vdpau:
http://cgit.freedesktop.org/vdpau/libvdpau/tree/include/vdpau/vdpau.h#n209 .
Or is the thread safety delegated to the vaapi user like many libraries ?
What is the scenario of using multi-thread?
I cannot see anything about thread in
http://cgit.freedesktop.org/vaapi/libva/tree/va/va.h .
Though in the intel driver
http://cgit.freedesktop.org/vaapi/intel-driver/ there are some mutex:
i965->pp_mutex : post processing
i965->render_mutex : vaPutSurface
intel->ctxmutex : does not seem to be used
heap->mutex: (object_heap_allocate / object_heap_lookup ... )
As we know, the va is mainly used for the decoding/encoding/VPP, which
is executed in one context(This is created by calling vaCreateContext).
And it will be better that the operation related with the specific
context is handled in one thread(For example: the creation/release of
the parameter buffer).
And the mutex is used for the container of object IDs. So the object Ids
is thread safe. This is as what you mentioned.
But the object is not thread-safe. For example: one thread creates one
object buffer and another thread tries to access it. If the buffer is
destroyed, maybe the access will fail.
Thanks
From that it means that the operations on the container of object IDs
is thread safe. But no assumptions on the objects them-self.
Any clarification in general ?
Thx in advance
Julien
_______________________________________________
Libva mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libva
_______________________________________________
Libva mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libva