FFmpeg
|
This struct describes a set or pool of "hardware" frames (i.e. More...
#include <hwcontext.h>
Data Fields | |
const AVClass * | av_class |
A class for logging. More... | |
AVBufferRef * | device_ref |
A reference to the parent AVHWDeviceContext. More... | |
AVHWDeviceContext * | device_ctx |
The parent AVHWDeviceContext. More... | |
void * | hwctx |
The format-specific data, allocated and freed automatically along with this context. More... | |
void(* | free )(struct AVHWFramesContext *ctx) |
This field may be set by the caller before calling av_hwframe_ctx_init(). More... | |
void * | user_opaque |
Arbitrary user data, to be used e.g. More... | |
AVBufferPool * | pool |
A pool from which the frames are allocated by av_hwframe_get_buffer(). More... | |
int | initial_pool_size |
Initial size of the frame pool. More... | |
enum AVPixelFormat | format |
The pixel format identifying the underlying HW surface type. More... | |
enum AVPixelFormat | sw_format |
The pixel format identifying the actual data layout of the hardware frames. More... | |
int | width |
The allocated dimensions of the frames in this pool. More... | |
int | height |
This struct describes a set or pool of "hardware" frames (i.e.
those with data not located in normal system memory). All the frames in the pool are assumed to be allocated in the same way and interchangeable.
This struct is reference-counted with the AVBuffer mechanism and tied to a given AVHWDeviceContext instance. The av_hwframe_ctx_alloc() constructor yields a reference, whose data field points to the actual AVHWFramesContext struct.
Definition at line 115 of file hwcontext.h.
const AVClass* AVHWFramesContext::av_class |
A class for logging.
Definition at line 119 of file hwcontext.h.
AVBufferRef* AVHWFramesContext::device_ref |
A reference to the parent AVHWDeviceContext.
This reference is owned and managed by the enclosing AVHWFramesContext, but the caller may derive additional references from it.
Definition at line 126 of file hwcontext.h.
Referenced by cuvid_decode_init(), ff_nvdec_decode_init(), ff_opencl_filter_config_input(), ff_qsv_init_session_frames(), ff_vaapi_common_frame_params(), ff_vk_filter_init_context(), get_mfx_version(), hwmap_config_output(), init_processing_chain(), init_vpp_session(), nppsharpen_config(), overlay_cuda_config_output(), qsv_frame_alloc(), scale_vt_config_output(), and transpose_vt_recreate_hw_ctx().
AVHWDeviceContext* AVHWFramesContext::device_ctx |
The parent AVHWDeviceContext.
This is simply a pointer to device_ref->data provided for convenience.
Set by libavutil in av_hwframe_ctx_init().
Definition at line 134 of file hwcontext.h.
Referenced by alloc_bind_mem(), amf_init_context(), av_hwframe_ctx_create_derived(), config_output(), config_props(), copy_buffer_data(), create_frame(), create_mapped_buffer(), cuda_bilateral_config_props(), cudachromakey_config_props(), cudacolorspace_config_props(), cudascale_config_props(), cuvid_decode_init(), ff_d3d12va_decode_init(), ff_dxva2_common_frame_params(), ff_dxva2_decode_init(), ff_hwaccel_frame_priv_alloc(), ff_vaapi_common_frame_params(), ff_vdpau_common_init(), get_plane_buf(), host_map_frame(), nppscale_filter_frame(), nppsharpen_filter_frame(), npptranspose_filter_frame(), nvenc_setup_device(), opencl_frames_derive_to(), opencl_frames_init_command_queue(), opencl_map_to(), opencl_pool_alloc(), prepare_frame(), qsv_dynamic_frames_derive_to(), qsv_dynamic_pool_alloc(), qsv_fixed_frames_derive_to(), qsv_frames_derive_from(), try_export_flags(), vaapi_buffer_free(), vaapi_frames_init(), vaapi_map_frame(), vaapi_map_to_memory(), vaapi_pool_alloc(), vaapi_transfer_get_formats(), vaapi_unmap_frame(), vulkan_frame_free(), vulkan_frames_init(), vulkan_frames_uninit(), vulkan_free_internal(), vulkan_map_from(), vulkan_map_to(), vulkan_pool_alloc(), vulkan_transfer_data_from(), vulkan_transfer_data_to(), and vulkan_transfer_frame().
void* AVHWFramesContext::hwctx |
The format-specific data, allocated and freed automatically along with this context.
The user shall ignore this field if the corresponding format-specific header (hwcontext_*.h) does not define a context to be used as AVHWFramesContext.hwctx.
Otherwise, it should be cast by the user to said context and filled as described in the documentation before calling av_hwframe_ctx_init().
After any frames using this context are created, the contents of this struct should not be modified by the caller.
Definition at line 150 of file hwcontext.h.
Referenced by create_frame(), d3d12va_create_decoder(), d3d12va_create_decoder_heap(), d3d12va_create_encoder(), d3d12va_encode_create_recon_frames(), d3d12va_encode_hevc_init_sequence_params(), d3d12va_encode_issue(), d3d12va_encode_prepare_output_buffers(), ff_dxva2_common_frame_params(), ff_dxva2_decode_init(), ff_qsv_enc_init(), ff_qsv_init_session_frames(), ff_vaapi_encode_init(), ff_vaapi_vpp_config_output(), ff_vk_create_imageviews(), ff_vk_exec_add_dep_frame(), ff_vk_exec_discard_deps(), ff_vk_exec_submit(), ff_vk_filter_init_context(), ff_vk_frame_params(), fill_frameinfo_by_link(), get_plane_buf(), init_hwframes_ctx(), init_video_param(), init_video_param_jpeg(), init_vpp_session(), libplacebo_config_output(), opencl_frames_init_command_queue(), opencl_frames_uninit(), opencl_map_frame(), opencl_transfer_data_from(), opencl_transfer_data_to(), opencl_unmap_frame(), qsv_create_mids(), qsv_decode_preinit(), qsv_dynamic_frames_derive_to(), qsv_dynamic_pool_alloc(), qsv_dynamic_pool_map_to(), qsv_fixed_frames_derive_to(), qsv_fixed_pool_map_to(), qsv_frame_alloc(), qsv_frame_get_hdl(), qsv_frame_lock(), qsv_frame_unlock(), qsv_frames_derive_from(), qsv_init_child_ctx(), qsv_map_to(), qsv_setup_mids(), scale_vt_config_output(), transpose_vt_recreate_hw_ctx(), try_export_flags(), vaapi_frames_init(), vaapi_frames_uninit(), vaapi_map_frame(), vaapi_pool_alloc(), vulkan_encode_create_dpb(), vulkan_encode_init(), vulkan_frames_init(), vulkan_frames_uninit(), vulkan_pool_alloc(), and vulkan_transfer_frame().
void(* AVHWFramesContext::free) (struct AVHWFramesContext *ctx) |
This field may be set by the caller before calling av_hwframe_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 158 of file hwcontext.h.
Referenced by ff_vk_frame_params(), and nvdec_init_hwframes().
void* AVHWFramesContext::user_opaque |
Arbitrary user data, to be used e.g.
by the free() callback.
Definition at line 163 of file hwcontext.h.
Referenced by ff_vk_frame_params(), and free_profile_data().
AVBufferPool* AVHWFramesContext::pool |
A pool from which the frames are allocated by av_hwframe_get_buffer().
This field may be set by the caller before calling av_hwframe_ctx_init(). The buffers returned by calling av_buffer_pool_get() on this pool must have the properties described in the documentation in the corresponding hw type's header (hwcontext_*.h). The pool will be freed strictly before this struct's free() callback is invoked.
This field may be NULL, then libavutil will attempt to allocate a pool internally. Note that certain device types enforce pools allocated at fixed size (frame count), which cannot be extended dynamically. In such a case, initial_pool_size must be set appropriately.
Definition at line 178 of file hwcontext.h.
Referenced by drm_get_buffer(), nvdec_init_hwframes(), opencl_frames_init(), opencl_get_buffer(), vaapi_frames_init(), vaapi_get_buffer(), vulkan_frames_init(), and vulkan_get_buffer().
int AVHWFramesContext::initial_pool_size |
Initial size of the frame pool.
If a device type does not support dynamically resizing the pool, then this is also the maximum pool size.
May be set by the caller before calling av_hwframe_ctx_init(). Must be set if pool is NULL and the device type does not support dynamic pools.
Definition at line 187 of file hwcontext.h.
Referenced by amf_init_context(), avcodec_default_get_buffer2(), avcodec_get_hw_frames_parameters(), config_output(), ff_decode_get_hw_frames_ctx(), ff_dxva2_common_frame_params(), ff_nvdec_decode_init(), ff_nvdec_frame_params(), ff_vaapi_vpp_config_output(), hwmap_config_output(), init_vpp_session(), nvdec_init_hwframes(), qsv_decode_preinit(), qsv_fixed_frames_derive_to(), qsv_frames_derive_from(), qsv_frames_derive_to(), qsv_init_child_ctx(), set_hwframe_ctx(), vaapi_frames_init(), and vaapi_pool_alloc().
enum AVPixelFormat AVHWFramesContext::format |
The pixel format identifying the underlying HW surface type.
Must be a hwaccel format, i.e. the corresponding descriptor must have the AV_PIX_FMT_FLAG_HWACCEL flag set.
Must be set by the user before calling av_hwframe_ctx_init().
Definition at line 197 of file hwcontext.h.
Referenced by av_hwframe_map(), avcodec_default_get_buffer2(), bwdif_vulkan_config_input(), config_output(), cudaupload_config_output(), d3d12va_encode_create_recon_frames(), encode_preinit_video(), ff_d3d12va_common_frame_params(), ff_d3d12va_decode_init(), ff_dxva2_common_frame_params(), ff_dxva2_decode_init(), ff_get_format(), ff_nvdec_frame_params(), ff_nvenc_encode_init(), ff_opencl_filter_config_input(), ff_opencl_filter_config_output(), ff_vaapi_vpp_config_output(), ff_vdpau_common_frame_params(), ff_vk_filter_config_input(), ff_vk_filter_init_context(), ff_vk_frame_params(), hwmap_config_output(), init_hwframe_ctx(), init_hwframes_ctx(), init_stage(), init_vpp_session(), nppsharpen_config(), nvenc_setup_device(), qsv_decode_preinit(), qsv_dynamic_pool_unmap(), qsv_init_child_ctx(), qsv_transfer_data_child(), rkmpp_retrieve_frame(), scale_vt_config_output(), set_hwframe_ctx(), transpose_vt_recreate_hw_ctx(), vaapi_encode_create_recon_frames(), and vulkan_encode_create_dpb().
enum AVPixelFormat AVHWFramesContext::sw_format |
The pixel format identifying the actual data layout of the hardware frames.
Must be set by the caller before calling av_hwframe_ctx_init().
Definition at line 210 of file hwcontext.h.
Referenced by amf_init_context(), avcodec_default_get_buffer2(), blend_frame(), bwdif_vulkan_config_input(), bwdif_vulkan_config_output(), config_output(), config_props(), create_frame(), cudaupload_config_output(), d3d12va_encode_create_recon_frames(), d3d12va_encode_hevc_init_sequence_params(), d3d12va_encode_set_profile(), drawbox_vaapi_config_output(), drm_map_from(), encode_preinit_video(), ff_d3d12va_common_frame_params(), ff_d3d12va_get_suitable_max_bitstream_size(), ff_dxva2_common_frame_params(), ff_hw_base_encode_init_params_h264(), ff_hw_base_encode_init_params_h265(), ff_nvdec_frame_params(), ff_nvenc_encode_init(), ff_opencl_filter_config_input(), ff_opencl_filter_config_output(), ff_vaapi_vpp_config_output(), ff_vdpau_common_frame_params(), ff_vk_create_imageviews(), ff_vk_filter_config_input(), ff_vk_filter_init_context(), ff_vk_frame_params(), ff_vk_shader_update_img_array(), filter_frame(), have_alpha_planar(), hwmap_config_output(), hwupload_config_output(), init_hwframe_ctx(), init_hwframes_ctx(), init_processing_chain(), init_stage(), init_vpp_session(), nlmeans_opencl_filter_frame(), nppscale_deinterleave(), nppscale_interleave(), nppsharpen_config(), nppsharpen_sharpen(), opencl_map_frame(), opencl_map_from(), opencl_pool_alloc(), opencl_transfer_data_from(), opencl_transfer_data_to(), opencl_transfer_get_formats(), overlay_cuda_config_output(), overlay_opencl_blend(), overlay_vulkan_blend(), pad_opencl_init(), qsv_decode_preinit(), qsv_init_child_ctx(), remap_opencl_process_frame(), rkmpp_retrieve_frame(), scale_vaapi_config_output(), scale_vt_config_output(), set_hwframe_ctx(), thumbnail(), tonemap_opencl_filter_frame(), transpose_vt_recreate_hw_ctx(), try_export_flags(), vaapi_encode_av1_init_sequence_params(), vaapi_encode_create_recon_frames(), vaapi_encode_mjpeg_get_encoder_caps(), vaapi_encode_mjpeg_init_picture_params(), vaapi_encode_profile_entrypoint(), vaapi_frames_init(), vaapi_map_frame(), vaapi_transfer_get_formats(), vaapi_vpp_frame_is_rgb(), vt_map_from(), vulkan_encode_create_dpb(), vulkan_frames_init(), vulkan_free_internal(), vulkan_pool_alloc(), vulkan_transfer_get_formats(), and xfade_frame().
int AVHWFramesContext::width |
The allocated dimensions of the frames in this pool.
Must be set by the user before calling av_hwframe_ctx_init().
Definition at line 217 of file hwcontext.h.
Referenced by config_output(), create_frame(), cudaupload_config_output(), d3d12va_create_decoder(), d3d12va_create_decoder_heap(), d3d12va_encode_create_recon_frames(), drm_get_buffer(), drm_transfer_data_from(), drm_transfer_data_to(), ff_d3d12va_common_frame_params(), ff_d3d12va_encode_init(), ff_dxva2_common_frame_params(), ff_nvdec_frame_params(), ff_opencl_filter_config_output(), ff_vaapi_vpp_config_output(), ff_vdpau_common_frame_params(), ff_vk_filter_init_context(), ff_vk_frame_params(), hwmap_config_output(), init_hwframe_ctx(), init_hwframes_ctx(), init_stage(), init_vpp_session(), nppsharpen_config(), opencl_get_buffer(), opencl_pool_alloc(), qsv_decode_preinit(), qsv_init_child_ctx(), rkmpp_retrieve_frame(), scale_vt_config_output(), set_hwframe_ctx(), transpose_vt_recreate_hw_ctx(), vaapi_encode_create_recon_frames(), vaapi_get_buffer(), vaapi_map_frame(), vaapi_pool_alloc(), vaapi_transfer_data_from(), vaapi_transfer_data_to(), vaapi_unmap_frame(), vt_transfer_data_from(), vt_transfer_data_to(), vulkan_encode_create_dpb(), vulkan_get_buffer(), and vulkan_transfer_frame().
int AVHWFramesContext::height |
Definition at line 217 of file hwcontext.h.
Referenced by config_output(), create_frame(), cudaupload_config_output(), d3d12va_create_decoder(), d3d12va_create_decoder_heap(), d3d12va_encode_create_recon_frames(), drm_get_buffer(), drm_transfer_data_from(), drm_transfer_data_to(), ff_d3d12va_common_frame_params(), ff_d3d12va_encode_init(), ff_dxva2_common_frame_params(), ff_nvdec_frame_params(), ff_opencl_filter_config_output(), ff_vaapi_vpp_config_output(), ff_vdpau_common_frame_params(), ff_vk_filter_init_context(), ff_vk_frame_params(), hwmap_config_output(), init_hwframe_ctx(), init_hwframes_ctx(), init_stage(), init_vpp_session(), nppsharpen_config(), opencl_get_buffer(), opencl_pool_alloc(), qsv_decode_preinit(), qsv_init_child_ctx(), rkmpp_retrieve_frame(), scale_vt_config_output(), set_hwframe_ctx(), transpose_vt_recreate_hw_ctx(), vaapi_encode_create_recon_frames(), vaapi_get_buffer(), vaapi_map_frame(), vaapi_pool_alloc(), vaapi_transfer_data_from(), vaapi_transfer_data_to(), vaapi_unmap_frame(), vt_transfer_data_from(), vt_transfer_data_to(), vulkan_encode_create_dpb(), vulkan_get_buffer(), and vulkan_transfer_frame().