FFmpeg  4.3.1
Data Structures | Enumerations
hwcontext_drm.h File Reference

API-specific header for AV_HWDEVICE_TYPE_DRM. More...

#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  AVDRMObjectDescriptor
 DRM object descriptor. More...
 
struct  AVDRMPlaneDescriptor
 DRM plane descriptor. More...
 
struct  AVDRMLayerDescriptor
 DRM layer descriptor. More...
 
struct  AVDRMFrameDescriptor
 DRM frame descriptor. More...
 
struct  AVDRMDeviceContext
 DRM device. More...
 

Enumerations

enum  {
  AVFILTER_AUTO_CONVERT_ALL = 0, AVFILTER_AUTO_CONVERT_NONE = -1, AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT = 1, AV_BUFFERSRC_FLAG_PUSH = 4,
  AV_BUFFERSRC_FLAG_KEEP_REF = 8, AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 0x01, AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02, AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 0x04,
  AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 0x08, AV_FRAME_CROP_UNALIGNED = 1 << 0, AV_HWFRAME_MAP_READ = 1 << 0, AV_HWFRAME_MAP_WRITE = 1 << 1,
  AV_HWFRAME_MAP_OVERWRITE = 1 << 2, AV_HWFRAME_MAP_DIRECT = 1 << 3, AV_DRM_MAX_PLANES = 4, AV_VAAPI_DRIVER_QUIRK_USER_SET = (1 << 0),
  AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS = (1 << 1), AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE = (1 << 2), AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES = (1 << 3), AV_OPT_FLAG_IMPLICIT_KEY = 1
}
 

Detailed Description

API-specific header for AV_HWDEVICE_TYPE_DRM.

Internal frame allocation is not currently supported - all frames must be allocated by the user. Thus AVHWFramesContext is always NULL, though this may change if support for frame allocation is added in future.

Definition in file hwcontext_drm.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
AVFILTER_AUTO_CONVERT_ALL 

all automatic conversions enabled

AVFILTER_AUTO_CONVERT_NONE 

all automatic conversions disabled

AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT 

Do not check for format changes.

AV_BUFFERSRC_FLAG_PUSH 

Immediately push the frame to the output.

AV_BUFFERSRC_FLAG_KEEP_REF 

Keep a reference to the frame.

If the frame if reference-counted, create a new reference; otherwise copy the frame data.

AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX 

The codec supports this format via the hw_device_ctx interface.

When selecting this format, AVCodecContext.hw_device_ctx should have been set to a device of the specified type before calling avcodec_open2().

AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX 

The codec supports this format via the hw_frames_ctx interface.

When selecting this format for a decoder, AVCodecContext.hw_frames_ctx should be set to a suitable frames context inside the get_format() callback. The frames context must have been created on a device of the specified type.

When selecting this format for an encoder, AVCodecContext.hw_frames_ctx should be set to the context which will be used for the input frames before calling avcodec_open2().

AV_CODEC_HW_CONFIG_METHOD_INTERNAL 

The codec supports this format by some internal method.

This format can be selected without any additional configuration - no device or frames context is required.

AV_CODEC_HW_CONFIG_METHOD_AD_HOC 

The codec supports this format by some ad-hoc method.

Additional settings and/or function calls are required. See the codec-specific documentation for details. (Methods requiring this sort of configuration are deprecated and others should be used in preference.)

AV_FRAME_CROP_UNALIGNED 

Apply the maximum possible cropping, even if it requires setting the AVFrame.data[] entries to unaligned pointers.

Passing unaligned data to FFmpeg API is generally not allowed, and causes undefined behavior (such as crashes). You can pass unaligned data only to FFmpeg APIs that are explicitly documented to accept it. Use this flag only if you absolutely know what you are doing.

AV_HWFRAME_MAP_READ 

The mapping must be readable.

AV_HWFRAME_MAP_WRITE 

The mapping must be writeable.

AV_HWFRAME_MAP_OVERWRITE 

The mapped frame will be overwritten completely in subsequent operations, so the current frame data need not be loaded.

Any values which are not overwritten are unspecified.

AV_HWFRAME_MAP_DIRECT 

The mapping must be direct.

That is, there must not be any copying in the map or unmap steps. Note that performance of direct mappings may be much lower than normal memory.

AV_DRM_MAX_PLANES 

The maximum number of layers/planes in a DRM frame.

AV_VAAPI_DRIVER_QUIRK_USER_SET 

The quirks field has been set by the user and should not be detected automatically by av_hwdevice_ctx_init().

AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS 

The driver does not destroy parameter buffers when they are used by vaRenderPicture().

Additional code will be required to destroy them separately afterwards.

AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE 

The driver does not support the VASurfaceAttribMemoryType attribute, so the surface allocation code will not try to use it.

AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES 

The driver does not support surface attributes at all.

The surface allocation code will never pass them to surface allocation, and the results of the vaQuerySurfaceAttributes() call will be faked.

AV_OPT_FLAG_IMPLICIT_KEY 

Accept to parse a value without a key; the key will then be returned as NULL.

Definition at line 35 of file hwcontext_drm.h.