FFmpeg
4.0
|
This struct aggregates all the (hardware/vendor-specific) "high-level" state, i.e. More...
#include <libavutil/hwcontext.h>
Data Fields | |
const AVClass * | av_class |
A class for logging. More... | |
AVHWDeviceInternal * | internal |
Private data used internally by libavutil. More... | |
enum AVHWDeviceType | type |
This field identifies the underlying API used for hardware access. More... | |
void * | hwctx |
The format-specific data, allocated and freed by libavutil along with this context. More... | |
void(* | free )(struct AVHWDeviceContext *ctx) |
This field may be set by the caller before calling av_hwdevice_ctx_init(). More... | |
void * | user_opaque |
Arbitrary user data, to be used e.g. More... | |
This struct aggregates all the (hardware/vendor-specific) "high-level" state, i.e.
state that is not tied to a concrete processing configuration. E.g., in an API that supports hardware-accelerated encoding and decoding, this struct will (if possible) wrap the state that is common to both encoding and decoding and from which specific instances of encoders or decoders can be derived.
This struct is reference-counted with the AVBuffer mechanism. The av_hwdevice_ctx_alloc() constructor yields a reference, whose data field points to the actual AVHWDeviceContext. Further objects derived from AVHWDeviceContext (such as AVHWFramesContext, describing a frame pool with specific properties) will hold an internal reference to it. After all the references are released, the AVHWDeviceContext itself will be freed, optionally invoking a user-specified callback for uninitializing the hardware state.
Definition at line 60 of file hwcontext.h.
const AVClass* AVHWDeviceContext::av_class |
AVHWDeviceInternal* AVHWDeviceContext::internal |
Private data used internally by libavutil.
Must not be accessed in any way by the caller.
Definition at line 70 of file hwcontext.h.
Referenced by av_hwdevice_ctx_alloc(), av_hwdevice_ctx_create(), av_hwdevice_ctx_create_derived(), av_hwdevice_ctx_init(), av_hwdevice_get_hwframe_constraints(), av_hwdevice_hwconfig_alloc(), av_hwframe_ctx_alloc(), hwdevice_ctx_free(), opencl_check_extension(), opencl_device_init(), opencl_device_uninit(), opencl_frames_derive_to(), opencl_frames_init_command_queue(), opencl_map_frame(), opencl_map_to(), opencl_mem_flags_for_mapping(), qsv_device_init(), qsv_init_child_ctx(), qsv_init_internal_session(), vaapi_device_init(), vaapi_device_uninit(), vaapi_frames_get_constraints(), vaapi_get_image_format(), vaapi_transfer_get_formats(), vdpau_buffer_free(), vdpau_device_init(), vdpau_device_uninit(), vdpau_frames_get_constraints(), vdpau_frames_init(), vdpau_init_pixmfts(), and vdpau_pool_alloc().
enum AVHWDeviceType AVHWDeviceContext::type |
This field identifies the underlying API used for hardware access.
This field is set when this struct is allocated and never changed afterwards.
Definition at line 78 of file hwcontext.h.
Referenced by amf_init_context(), av_hwdevice_ctx_create_derived(), avcodec_default_get_format(), ff_decode_get_hw_frames_ctx(), ff_get_format(), ff_mediacodec_dec_init(), nvenc_setup_device(), opencl_device_derive(), opencl_frames_derive_to(), qsv_device_derive_from_child(), qsv_frames_derive_from(), qsv_frames_derive_to(), qsv_init_child_ctx(), and vaapi_device_derive().
void* AVHWDeviceContext::hwctx |
The format-specific data, allocated and freed by libavutil along with this context.
Should be cast by the user to the format-specific context defined in the corresponding header (hwcontext_*.h) and filled as described in the documentation before calling av_hwdevice_ctx_init().
After calling av_hwdevice_ctx_init() this struct should not be modified by the caller.
Definition at line 91 of file hwcontext.h.
Referenced by amf_init_context(), av_hwdevice_ctx_alloc(), bufref_wrap_interface(), config_props(), cuda_buffer_free(), cuda_device_create(), cuda_device_init(), cuda_device_uninit(), cuda_pool_alloc(), cuda_transfer_data_from(), cuda_transfer_data_to(), cudascale_config_props(), cudascale_filter_frame(), cuvid_decode_init(), cuvid_decode_packet(), cuvid_flush(), cuvid_output_frame(), d3d11va_alloc_single(), d3d11va_create_staging_texture(), d3d11va_device_create(), d3d11va_device_init(), d3d11va_device_uninit(), d3d11va_frames_get_constraints(), d3d11va_frames_init(), d3d11va_transfer_data(), drm_device_create(), drm_device_free(), dxva2_device_create(), dxva2_device_free(), dxva2_frames_uninit(), dxva2_init_pool(), ff_dxva2_decode_init(), ff_dxva2_lock(), ff_dxva2_unlock(), ff_mediacodec_dec_init(), ff_qsv_init_session_device(), ff_vaapi_decode_init(), ff_vaapi_encode_init(), ff_vdpau_common_init(), filter_frame(), hwdevice_ctx_free(), init_out_session(), init_vpp_session(), kmsgrab_read_header(), nppscale_filter_frame(), nvdec_decoder_create(), nvenc_setup_device(), opencl_check_extension(), opencl_device_create_internal(), opencl_device_derive(), opencl_device_free(), opencl_device_init(), opencl_filter_set_device(), opencl_frames_get_constraints(), opencl_map_frame(), opencl_mem_flags_for_mapping(), opencl_pool_alloc(), qsv_device_derive_from_child(), qsv_device_free(), qsv_device_init(), qsv_init_child_ctx(), vaapi_buffer_free(), vaapi_decode_find_best_format(), vaapi_decode_make_config(), vaapi_device_connect(), vaapi_device_derive(), vaapi_device_free(), vaapi_device_init(), vaapi_frames_get_constraints(), vaapi_frames_init(), vaapi_map_frame(), vaapi_map_to_memory(), vaapi_pool_alloc(), vaapi_unmap_frame(), vdpau_device_init(), vdpau_init_pixmfts(), vdpau_pool_alloc(), and vdpau_transfer_data_to().
void(* AVHWDeviceContext::free) (struct AVHWDeviceContext *ctx) |
This field may be set by the caller before calling av_hwdevice_ctx_init().
If non-NULL, this callback will be called when the last reference to this context is unreferenced, immediately before it is freed.
Definition at line 103 of file hwcontext.h.
Referenced by drm_device_create(), dxva2_device_create(), hwdevice_ctx_free(), opencl_device_create_internal(), qsv_device_create(), vaapi_device_create(), vaapi_device_derive(), and vdpau_transfer_data_to().
void* AVHWDeviceContext::user_opaque |
Arbitrary user data, to be used e.g.
by the free() callback.
Definition at line 108 of file hwcontext.h.
Referenced by dxva2_device_create(), dxva2_device_create9(), dxva2_device_create9ex(), dxva2_device_free(), qsv_device_create(), qsv_device_free(), vaapi_device_create(), vaapi_device_derive(), vaapi_device_free(), and vdpau_transfer_data_to().