/** \brief Base DRM state. */ struct drm_state { /** \brief DRM connection descriptor. */ int fd; /** \brief DRM authentication type. */ int auth_type; /** \brief Reserved bytes for future use, must be zero */ int va_reserved[8];
};
/** \brief Kernel DRM buffer memory type. */ #define VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM 0x10000000 /** \brief DRM PRIME memory type (old version) * *Thissupportsonlysingleobjectswithrestrictedmemorylayout. *UsedwithVASurfaceAttribExternalBuffers.
*/ #define VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME 0x20000000 /** \brief DRM PRIME memory type * *UsedwithVADRMPRIMESurfaceDescriptor.
*/ #define VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2 0x40000000
/** *\briefExternalbufferdescriptorforaDRMPRIMEsurface. * *Forexport,callvaExportSurfaceHandle()withmem_typesetto *VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2andpassapointertoan *instanceofthisstructuretofill. *IfVA_EXPORT_SURFACE_SEPARATE_LAYERSisspecifiedonexport,each *layerwillcontainexactlyoneplane.Forexample,anNV12 *surfacewillbeexportedastwolayers,oneofDRM_FORMAT_R8and *oneofDRM_FORMAT_GR88. *IfVA_EXPORT_SURFACE_COMPOSED_LAYERSisspecifiedonexport, *therewillbeexactlyonelayer. * *Forimport,callvaCreateSurfaces()withtheMemoryTypeattribute *settoVA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME_2andthe *ExternalBufferDescriptorattributesettopointtoanarrayof *num_surfacesinstancesofthisstructure. *Thenumberofplaneswhichneedtobeprovidedforagivenlayer *isdependentonboththeformatandtheformatmodifierusedfor *theobjectscontainingit.Forexample,theformatDRM_FORMAT_RGBA *normallyrequiresoneplane,butwiththeformatmodifier *I915_FORMAT_MOD_Y_TILED_CCSitrequirestwoplanes-thefirst *beingthemaindataplaneandthesecondcontainingthecolor *controlsurface. *Notethatagivendrivermayonlysupportasubsetofpossible *representationsofaparticularformat.Forexample,itmayonly *supportNV12surfaceswhentheyarecontainedwithinasingleDRM *object,andthereforefailtocreatesuchsurfacesifthetwo *planesareindifferentDRMobjects.
*/ typedefstruct _VADRMPRIMESurfaceDescriptor { /** Pixel format fourcc of the whole surface (VA_FOURCC_*). */
uint32_t fourcc; /** Width of the surface in pixels. */
uint32_t width; /** Height of the surface in pixels. */
uint32_t height; /** Number of distinct DRM objects making up the surface. */
uint32_t num_objects; /** Description of each object. */ struct { /** DRM PRIME file descriptor for this object. */ int fd; /** Total size of this object (may include regions which are
* not part of the surface). */
uint32_t size; /** Format modifier applied to this object. */
uint64_t drm_format_modifier;
} objects[4]; /** Number of layers making up the surface. */
uint32_t num_layers; /** Description of each layer in the surface. */ struct { /** DRM format fourcc of this layer (DRM_FOURCC_*). */
uint32_t drm_format; /** Number of planes in this layer. */
uint32_t num_planes; /** Index in the objects array of the object containing each
* plane. */
uint32_t object_index[4]; /** Offset within the object of each plane. */
uint32_t offset[4]; /** Pitch of each plane. */
uint32_t pitch[4];
} layers[4];
} VADRMPRIMESurfaceDescriptor;
#endif/* VA_DRM_COMMON_H */
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.