FFmpeg
Data Fields
AVD3D11VADeviceContext Struct Reference

This struct is allocated as AVHWDeviceContext.hwctx. More...

#include <hwcontext_d3d11va.h>

Data Fields

ID3D11Devicedevice
 Device used for texture creation and access. More...
 
ID3D11DeviceContext * device_context
 If unset, this will be set from the device field on init. More...
 
ID3D11VideoDevice * video_device
 If unset, this will be set from the device field on init. More...
 
ID3D11VideoContext * video_context
 If unset, this will be set from the device_context field on init. More...
 
void(* lock )(void *lock_ctx)
 Callbacks for locking. More...
 
void(* unlock )(void *lock_ctx)
 
void * lock_ctx
 

Detailed Description

This struct is allocated as AVHWDeviceContext.hwctx.

Definition at line 45 of file hwcontext_d3d11va.h.

Field Documentation

◆ device

ID3D11Device* AVD3D11VADeviceContext::device

Device used for texture creation and access.

This can also be used to set the libavcodec decoding device.

Must be set by the user. This is the only mandatory field - the other device context fields are set from this and are available for convenience.

Deallocating the AVHWDeviceContext will always release this interface, and it does not matter whether it was user-allocated.

Definition at line 56 of file hwcontext_d3d11va.h.

Referenced by create_d3d11_pointer_tex(), d3d11va_alloc_single(), d3d11va_create_staging_texture(), d3d11va_device_create(), d3d11va_device_init(), d3d11va_device_uninit(), d3d11va_frames_get_constraints(), d3d11va_frames_init(), init_dxgi_dda(), init_render_resources(), next_frame_internal(), nvenc_setup_device(), opencl_device_derive(), qsv_device_derive_from_child(), and qsv_init_child_ctx().

◆ device_context

ID3D11DeviceContext* AVD3D11VADeviceContext::device_context

If unset, this will be set from the device field on init.

Deallocating the AVHWDeviceContext will always release this interface, and it does not matter whether it was user-allocated.

Definition at line 64 of file hwcontext_d3d11va.h.

Referenced by d3d11va_device_init(), d3d11va_device_uninit(), d3d11va_transfer_data(), ddagrab_request_frame(), draw_mouse_pointer(), and next_frame_internal().

◆ video_device

ID3D11VideoDevice* AVD3D11VADeviceContext::video_device

If unset, this will be set from the device field on init.

Deallocating the AVHWDeviceContext will always release this interface, and it does not matter whether it was user-allocated.

Definition at line 72 of file hwcontext_d3d11va.h.

Referenced by d3d11va_device_init(), and d3d11va_device_uninit().

◆ video_context

ID3D11VideoContext* AVD3D11VADeviceContext::video_context

If unset, this will be set from the device_context field on init.

Deallocating the AVHWDeviceContext will always release this interface, and it does not matter whether it was user-allocated.

Definition at line 80 of file hwcontext_d3d11va.h.

Referenced by d3d11va_device_init(), d3d11va_device_uninit(), and ff_dxva2_decode_init().

◆ lock

void(* AVD3D11VADeviceContext::lock) (void *lock_ctx)

Callbacks for locking.

They protect accesses to device_context and video_context calls. They also protect access to the internal staging texture (for av_hwframe_transfer_data() calls). They do NOT protect access to hwcontext or decoder state in general.

If unset on init, the hwcontext implementation will set them to use an internal mutex.

The underlying lock must be recursive. lock_ctx is for free use by the locking implementation.

Definition at line 94 of file hwcontext_d3d11va.h.

Referenced by d3d11va_device_init(), d3d11va_device_uninit(), d3d11va_transfer_data(), and ff_dxva2_lock().

◆ unlock

void(* AVD3D11VADeviceContext::unlock) (void *lock_ctx)

Definition at line 95 of file hwcontext_d3d11va.h.

Referenced by d3d11va_device_init(), d3d11va_transfer_data(), and ff_dxva2_unlock().

◆ lock_ctx

void* AVD3D11VADeviceContext::lock_ctx

The documentation for this struct was generated from the following file: