Hi,

On Wed, 10 Nov 2010, Oleksiy Krivoshey wrote:

Could you please post some details about the problem in XBMC? 'Still
frames' problem is fixed with -vo vaapi:gl if using patched mesa, but
XBMC still  plays vaapi accelerated video really broken. I tried
increasing number of surfaces created initially and it helped with
some videos but not generally. Could you please give me some points?

You could ensure to have refs + 3 surfaces allocated, instead of refs + 1 + 1. The real problem is that XBMC is re-using a VA surface that was marked as free through release_buffer().

I suggest to create a ref counted object, e.g. the CSurface holder that would make sure to get a free surface from the pool at get_buffer() time and decrement the ref count in release_buffer(). Then, once it's used in the function that vaCopySurfaceGLX() it, you can unref it once more then refcount == 0 => put it back to the free pool.

I quickly tried but my initial attempt was wrong and did not have time to fix it yet.

Regards,
Gwenole.
_______________________________________________
Libva mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to