Flag indicating that we should map the VASurfaceID instead of to system memory, so users can use libva primitives to operate with that surface. Check whether the display is the implementation of the specified #GstVaImplementation type. There are two types of VA allocators: * #GstVaAllocator * #GstVaDmabufAllocator Instanciate a new pooled #GstAllocator backed by VASurfaceID. a #GstVaDisplay a #GstVaDisplay a #GArray of valid #GstVideoFormat for surfaces in current VA context. Allocate a new VASurfaceID backed #GstMemory. a #GstMemory backed with a VASurfaceID; %NULL, otherwise. a #GstAllocator Removes all the memories in @allocator's pool. a #GstAllocator Gets current internal configuration of @allocator. %TRUE if @allocator is already configured; %FALSE otherwise. a #GstAllocator a #GstVideoInfo VA usage hint a #GstVaFeature if derived images are used for buffer mapping. the display which this @allocator belongs to. The reference of the display is unchanged. a #GstAllocator This method will populate @buffer with pooled VASurfaceID memories. It doesn't allocate new VASurfacesID. %TRUE if @buffer was populated correctly; %FALSE otherwise. a #GstAllocator an empty #GstBuffer Sets the configuration defined by @info, @usage_hint and @use_derived for @allocator, and it tries the configuration, if @allocator has not allocated memories yet. If @allocator has memory allocated already, and frame size and format in @info are the same as currently configured in @allocator, the rest of @info parameters are updated internally. %TRUE if the configuration is valid or updated; %FALSE if configuration is not valid or not updated. a #GstAllocator a #GstVideoInfo VA usage hint a #GstVaFeature Internal method to set allocator specific logic changes. a #GstAllocator hacks id to set Populates an empty @buffer with a VASuface backed #GstMemory. %TRUE if @buffer is populated; %FALSE otherwise. a #GstAllocator a #GstBuffer It is a generic wrapper for VADisplay. To create new instances subclasses are required, depending on the display type to use (v.gr. DRM, X11, Wayland, etc.). The purpose of this class is to be shared among pipelines via #GstContext so all the VA processing elements will use the same display entry. Application developers can create their own subclass, based on their display, and shared it via the synced bus message for the application. This is called when the subclass has to create the internal VADisplay. The created VADisplay a #GstVaDisplay instance Get the the #GstVaImplementation type of @self. #GstVaImplementation. a #GstVaDisplay type display. Get the VA display handle of the @self. the VA display handle. a #GstVaDisplay type display. If the display is set by the user (foreign) it is assumed that the driver is already initialized, thus this function is noop. If the display is opened internally, this function will initialize the driver and it will set driver's message callbacks. NOTE: this function is supposed to be private, only used by GstVaDisplay descendants. %TRUE if the VA driver can be initialized; %FALSE otherwise a #GstVaDisplay parent #GstObject The common VA display object class structure. parent #GstObjectClass The created VADisplay a #GstVaDisplay instance This is a #GstVaDisplay subclass to instantiate with DRM devices. Creates a new #GstVaDisplay from a DRM device . It will try to open and operate the device in @path. a newly allocated #GstVaDisplay if the specified DRM render device could be opened and initialized; otherwise %NULL is returned. the path to the DRM device This is a #GstVaDisplay instantiaton subclass for custom created VADisplay, such as X11 or Wayland, wrapping it. Creates a #GstVaDisplay wrapping an already created and initialized VADisplay. The lifetime of @handle must be hold by the provider while the pipeline is instantiated. Do not call vaTerminate on it while the pipeline is not in NULL state. a new #GstVaDisplay if @handle is valid, Otherwise %NULL. a VADisplay to wrap A pooled memory allocator backed by the DMABufs exported from a VASurfaceID. Also it is possible to import DMAbufs into a VASurfaceID. Instanciate a new pooled allocator backed with both DMABuf and VASurfaceID. a new allocated #GstAllocator a #GstVaDisplay Removes all the memories in @allocator's pool. a #GstAllocator Gets current internal configuration of @allocator. %TRUE if @allocator is already configured; %FALSE otherwise. a #GstAllocator a #GstVideoInfo VA usage hint This method will populate @buffer with pooled VASurfaceID/DMABuf memories. It doesn't allocate new VASurfacesID. %TRUE if @buffer was populated correctly; %FALSE otherwise. a #GstAllocator an empty #GstBuffer Sets the configuration defined by @info and @usage_hint for @allocator, and it tries the configuration, if @allocator has not allocated memories yet. If @allocator has memory allocated already, and frame size and format in @info are the same as currently configured in @allocator, the rest of @info parameters are updated internally. %TRUE if the configuration is valid or updated; %FALSE if configuration is not valid or not updated. a #GstAllocator a #GstVideoInfo VA usage hint This funciton creates a new VASurfaceID and exposes its DMABufs, later it populates the @buffer with those DMABufs. %TRUE if @buffer is populated correctly; %FALSE otherwise. a #GstAllocator an empty #GstBuffer The feature is disabled. The feature is enabled. The feature is enabled automatically. Types of different VA API implemented drivers. These are the typical and the most widely used VA drivers. The mesa gallium implementation. The legacy i965 intel implementation. The iHD intel implementation. Other implementation. Invalid implementation. @GstVaPool is a buffer pool for VA allocators. A new #GstBufferPool for VA allocators. a new #GstBufferPool that handles VASurfacesID-backed buffers. If the pool cannot be configured correctly, %NULL is returned. the #GstCaps of the buffers handled by the new pool. the size of the frames to hold. minimum number of frames to create. maximum number of frames to create. VA usage hint a #GstVaFeature for derived mapping (only used when VA allocator). the VA allocator to use. #GstAllocationParams to use. Retuns: %TRUE if @pool always add #GstVideoMeta to its buffers. Otherwise, %FALSE. the #GstBufferPool Video alignment is not handled as expected by VA since it uses opaque surfaces, not directly mappable memory. Still, decoders might need to request bigger surfaces for coded size rather than display sizes. This method will set the coded size to bufferpool's configuration, out of the typical video aligment. the #GstStructure with the pool's configuration. a #GstVideoAlignment Sets the usage hint for the buffers handled by the buffer pool. the #GstStructure with the pool's configuration. the VA usage hint for new VASurfaceID. a #GstVaFeature for derived mapping (only used when VA allocator). whether we find a valid @display in the @context a #GstContext may contain the display a #gchar string of the element type the #gchar string of render device path the #GstVaDisplay we get Set the @display in the @context a #GstContext the #GstVaDisplay we want to set Creates a new VASurfaceID with @buffer's allocator and attached it to it. *This method is used only by plugin's internal VA decoder.* %TRUE if the new VASurfaceID is attached to @buffer correctly; %FALSE, otherwise. a #GstBuffer the VASurfaceID attached to @buffer. a #GstBuffer the VASurfaceID in @buffer. a #GstBuffer the display which this @buffer belongs to. The reference of the display is unchanged. a #GstBuffer Query the specified context type name. a #GstElement the #gchar string specify the context type name It imports the array of @mem, representing a single frame, into a VASurfaceID and it's attached into every @mem. %TRUE if frame is imported correctly into a VASurfaceID; %FALSE otherwise. a #GstVaDisplay a #GstVideoInfo number of planes Memories. One per plane. array of DMABuf file descriptors. array of memory offsets. VA usage hint. Propagate @display by posting it as #GstContext in the pipeline's bus. a #GstElement the #GstVaDisplay to propagate Called by the va element to ensure a valid #GstVaDisplay. whether a #GstVaDisplay exists in @display_ptr a #GstElement the #gchar string of render device path The #GstVaDisplay to ensure Used by elements when processing their pad's queries, propagating element's #GstVaDisplay if the processed query requests it. whether we can handle the context query successfully a #GstElement a #GstQuery to query the context a #GstVaDisplay to answer the query Called by elements in their #GstElementClass::set_context vmethod. It gets a valid #GstVaDisplay if @context has it. whether the @display_ptr could be successfully set to a valid #GstVaDisplay in the @context a #GstElement a #GstContext may contain the display the #gchar string of render device path The #GstVaDisplay to set the VASurfaceID in @mem. a #GstMemory the display which this @mem belongs to. The reference of the display is unchanged. a #GstMemory