Expand description

Implements a lightweight and safe interface over libva.

The starting point to using this crate is to open a Display, from which a Context and Surfaces can be allocated and used for doing actual work.

Modules

bindings 🔒
This module implements the bindgen C FFI bindings for use within this crate
buffer 🔒
config 🔒
context 🔒
display 🔒
image 🔒
picture 🔒
status 🔒
surface 🔒
usage_hint 🔒

Structs

Wrapper over the VABoolCoderContextVPX FFI type.
Wrapper type representing a buffer created with vaCreateBuffer.
A configuration for a given Display.
A VA context for a particular Display.
A VADisplay opened over DRM.
Iterates over existing DRM devices.
Wrapper over the pic_fields bindgen field in VAPictureParameterBufferH264.
Wrapper over the seq_fields bindgen field in VAPictureParameterBufferH264.
Wrapper over the VAIQMatrixBufferH264 FFI type
Wrapper over the VAIQMatrixBufferMPEG2 FFI type.
Wrapper over the VAIQMatrixBufferVP8 FFI type.
Wrapper around VAImage that is tied to the lifetime of a given Picture.
Wrapper over the picture_coding_extension bindgen field in VAPictureParameterBufferMPEG2.
A Surface that is being rendered into.
Wrapper over the VAPictureH264 FFI type.
A wrapper over VAPictureParameterBufferH264 FFI type
Wrapper over the PictureParameterBufferMPEG2 FFI type.
Wrapper over the PictureParameterBufferVP8 FFI type.
Wrapper over the PictureParameterBufferVP9 FFI type.
Wrapper over the VAProbabilityDataBufferVP8 FFI type.
Wrapper over the VASegmentParameterVP9 FFI type.
Wrapper over the VASliceParameterBufferH264 FFI type.
Wrapper over the VASliceParameterBufferMPEG2 FFI type.
Wrapper over the VASliceParameterBufferVP8 FFI type.
Wrapper over the VASliceParameterBufferVP9 FFI type.
An owned VA surface that is tied to the lifetime of a particular VADisplay
Gives the driver a hint of intended usage to optimize allocation (e.g. tiling).
Wrapper over the pic_fields bindgen field in VAPictureParameterBufferVP8.
Wrapper over the pic_fields bindgen field in VAPictureParameterBufferVP9.
Wrapper over the segment_flags bindgen field in VASegmentParameterVP9.

Enums

Abstraction over VABufferTypes.
A wrapper over VAGenericValue giving us safe access to the underlying union members.
Abstraction over the IQMatrixBuffer types we support.
Represents a Picture after vaBeginPicture has been called.
Represents a Picture after vaEndPicture has been called.
Represents a Picture that has just been created.
Abstraction over the PictureParameterBuffer types we support.
Represents a Picture after vaRenderPicture has been called.
Represents a Picture after vaSyncSurface has been called on the underlying surface.
Abstraction over the SliceParameterBuffer types we support

Traits

Represents a state where one can reclaim the underlying Surface for this Picture. This is true when either no decoding has been initiated or, alternatively, when the decoding operation has completed for the underlying vaSurface
A Picture will only have valid YUV data after a sequence of operations are performed in a particular order. This order correspond to the following VA-API calls: vaBeginPicture, vaRenderPicture, vaEndPicture and vaSyncSurface. This trait enforces this ordering by implementing the Typestate pattern to constrain what operations are available in what particular states.

Type Definitions