Skip to main content

vaQuerySurfaceError

Function vaQuerySurfaceError 

Source
pub unsafe extern "C" fn vaQuerySurfaceError(
    dpy: VADisplay,
    surface: VASurfaceID,
    error_status: VAStatus,
    error_info: *mut *mut c_void,
) -> VAStatus
Expand description

After the application gets VA_STATUS_ERROR_DECODING_ERROR after calling vaSyncSurface(), it can call vaQuerySurfaceError to find out further details on the particular error. VA_STATUS_ERROR_DECODING_ERROR should be passed in as “error_status”.

After the applications get VA_STATUS_HW_BUSY or VA_STATUS_SUCCESSFULL from vaSyncSurface(), it still can call vaQuerySurfaceError to find out further details to know if has real hw reset happened on this surface since umd and kmd could recover the context from reset with success in sometimes. VA_STATUS_HW_BUSY or VA_STATUS_SUCCESSFULL also could be passed in as “error_status”.

Upon the return, error_info will point to an array of _VASurfaceDecodeMBErrors structure, which is allocated and filled by libVA with detailed information on the VADecodeErrorType. The array is terminated if “status==-1” is detected.