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

Reply via email to