Hi, On Tue, 2 Nov 2010, Oleksiy Krivoshey wrote:
Could someone please point me at right direction: I want to use vaapi with tfp in my program on intel i3, I've got mplayer working nicely with -vo vaapi:gl:tfp and as I can see the TFP code in mplayer is almost the same as in *_impl_libva functions in libva/va/glx/va_glx_impl.c so my question is: what is the difference?
mplayer -vo vaapi:gl:tfp uses vaPutSurface() to a Pixmap and then the GLX_EXT_texture_from_pixmap to bind it to an OpenGL texture.
mplayer -vo vaapi:gl uses vaCopySurfaceGLX() to render a VA surface to an OpenGL texture, wrapped into a VA/GLX surface.
The latter approach (VA/GLX) is preferable for OpenGL applications because some VA drivers don't support rendering to a Pixmap but do support direct rendering to an OpenGL texture instead.
Do you mean that mplayer -vo vaapi:gl:tfp works but mplayer -vo vaapi:gl does *not* work? Current libva 1.0.5 should just work as is. Or do you have performance problems with either code path?
Should I still use my own bind/unbind and pixmap operations like in mplayer or could I rely on libva decision made in va_glx_init_context() function ?
If you use the latter, just make sure to allocate a GL texture with the same dimensions as the VA surface. Some day, I will probably look into implementing VA/GLX directly in the G45 driver, thus possibly avoiding the extra FBO.
Regards, Gwenole. _______________________________________________ Libva mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libva
