[Libva] vaGetImage failed with VA_STATUS_ERROR_SURFACE_BUSY

Weng, Chuanbo chuanbo.weng at intel.com
Fri Dec 26 00:03:00 PST 2014


Hi all,
                I have a usage case of libva: I read camera frame to a VASurface (VA_FOURCC_YUY2 format),
translate the format from VA_FOURCC_YUY2 to VA_FOURCC_NV12 and then show VASurface content
to screen. The code of translating format is as below:

                VAImage nv12_image;
va_status = vaDeriveImage(va_dpy, nv12_surface_id, &nv12_image);
                va_status = vaGetImage (va_dpy, gray_bgra_surface_id, 0, 0, width, height, nv12_image.image_id);

                It fails on vaGetImage with return value VA_STATUS_ERROR_SURFACE_BUSY. I dig into
intel-driver, and find it returns on the this line of i965_GetImage():
                if (is_image_busy(i965, obj_image))
                                return VA_STATUS_ERROR_SURFACE_BUSY;

                Could you find a way to solve this problem? Because it's the most convenient way I know translating
one format VASurface to another.

Thanks,
Chuanbo Weng

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libva/attachments/20141226/e250384a/attachment.html>


More information about the Libva mailing list