Go to the source code of this file.
|
static void | add_push_data (FFVulkanShader *shd) |
|
static int | run_rct (AVCodecContext *avctx, FFVkExecContext *exec, AVFrame *enc_in, VkImageView *enc_in_views, AVFrame **intermediate_frame, VkImageView *intermediate_views, VkImageMemoryBarrier2 *img_bar, int *nb_img_bar, VkBufferMemoryBarrier2 *buf_bar, int *nb_buf_bar, FFVkBuffer *slice_data_buf, uint32_t slice_data_size) |
|
static int | vulkan_encode_ffv1_submit_frame (AVCodecContext *avctx, FFVkExecContext *exec, const AVFrame *pict) |
|
static int | download_slices (AVCodecContext *avctx, VkBufferCopy *buf_regions, int nb_regions, VulkanEncodeFFv1FrameData *fd, AVBufferRef *pkt_data_ref) |
|
static int | get_packet (AVCodecContext *avctx, FFVkExecContext *exec, AVPacket *pkt) |
|
static int | vulkan_encode_ffv1_receive_packet (AVCodecContext *avctx, AVPacket *pkt) |
|
static int | init_indirect (AVCodecContext *avctx, enum AVPixelFormat sw_format) |
|
static int | check_support (AVHWFramesConstraints *constraints, enum AVPixelFormat fmt) |
|
static enum AVPixelFormat | get_supported_rgb_buffer_fmt (AVCodecContext *avctx) |
|
static void | define_shared_code (AVCodecContext *avctx, FFVulkanShader *shd) |
|
static int | init_setup_shader (AVCodecContext *avctx, FFVkSPIRVCompiler *spv) |
|
static int | init_reset_shader (AVCodecContext *avctx, FFVkSPIRVCompiler *spv) |
|
static int | init_rct_shader (AVCodecContext *avctx, FFVkSPIRVCompiler *spv) |
|
static int | init_encode_shader (AVCodecContext *avctx, FFVkSPIRVCompiler *spv) |
|
static int | init_state_transition_data (AVCodecContext *avctx) |
|
static int | init_quant_table_data (AVCodecContext *avctx) |
|
static int | init_crc_table_data (AVCodecContext *avctx) |
|
static av_cold int | vulkan_encode_ffv1_init (AVCodecContext *avctx) |
|
static av_cold int | vulkan_encode_ffv1_close (AVCodecContext *avctx) |
|
◆ LG_ALIGN_W
◆ LG_ALIGN_H
◆ OFFSET
◆ VE
◆ add_push_data()
◆ run_rct()
static int run_rct |
( |
AVCodecContext * |
avctx, |
|
|
FFVkExecContext * |
exec, |
|
|
AVFrame * |
enc_in, |
|
|
VkImageView * |
enc_in_views, |
|
|
AVFrame ** |
intermediate_frame, |
|
|
VkImageView * |
intermediate_views, |
|
|
VkImageMemoryBarrier2 * |
img_bar, |
|
|
int * |
nb_img_bar, |
|
|
VkBufferMemoryBarrier2 * |
buf_bar, |
|
|
int * |
nb_buf_bar, |
|
|
FFVkBuffer * |
slice_data_buf, |
|
|
uint32_t |
slice_data_size |
|
) |
| |
|
static |
◆ vulkan_encode_ffv1_submit_frame()
◆ download_slices()
◆ get_packet()
◆ vulkan_encode_ffv1_receive_packet()
◆ init_indirect()
◆ check_support()
◆ get_supported_rgb_buffer_fmt()
◆ define_shared_code()
◆ init_setup_shader()
◆ init_reset_shader()
◆ init_rct_shader()
◆ init_encode_shader()
◆ init_state_transition_data()
◆ init_quant_table_data()
◆ init_crc_table_data()
◆ vulkan_encode_ffv1_init()
◆ vulkan_encode_ffv1_close()
◆ ff_source_common_comp
const char* ff_source_common_comp |
◆ ff_source_rangecoder_comp
const char* ff_source_rangecoder_comp |
◆ ff_source_ffv1_vlc_comp
const char* ff_source_ffv1_vlc_comp |
◆ ff_source_ffv1_common_comp
const char* ff_source_ffv1_common_comp |
◆ ff_source_ffv1_reset_comp
const char* ff_source_ffv1_reset_comp |
◆ ff_source_ffv1_enc_common_comp
const char* ff_source_ffv1_enc_common_comp |
◆ ff_source_ffv1_enc_rct_comp
const char* ff_source_ffv1_enc_rct_comp |
◆ ff_source_ffv1_enc_vlc_comp
const char* ff_source_ffv1_enc_vlc_comp |
◆ ff_source_ffv1_enc_ac_comp
const char* ff_source_ffv1_enc_ac_comp |
◆ ff_source_ffv1_enc_setup_comp
const char* ff_source_ffv1_enc_setup_comp |
◆ ff_source_ffv1_enc_comp
const char* ff_source_ffv1_enc_comp |
◆ ff_source_ffv1_enc_rgb_comp
const char* ff_source_ffv1_enc_rgb_comp |
◆ vulkan_encode_ffv1_options
const AVOption vulkan_encode_ffv1_options[] |
|
static |
◆ vulkan_encode_ffv1_defaults
◆ vulkan_encode_ffv1_class
const AVClass vulkan_encode_ffv1_class |
|
static |
◆ vulkan_encode_ffv1_hw_configs
◆ ff_ffv1_vulkan_encoder
const FFCodec ff_ffv1_vulkan_encoder |
Initial value:= {
.p.name = "ffv1_vulkan",
},
.p.wrapper_name = "vulkan",
}
Definition at line 1837 of file ffv1enc_vulkan.c.
AVPixelFormat
Pixel format.
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
#define FF_CODEC_CAP_EOF_FLUSH
The encoder has AV_CODEC_CAP_DELAY set, but does not actually have delay - it only wants to be flushe...
@ AV_PIX_FMT_VULKAN
Vulkan hardware images.
static const AVClass vulkan_encode_ffv1_class
#define AV_CODEC_CAP_ENCODER_FLUSH
This encoder can be flushed using avcodec_flush_buffers().
const AVCodecHWConfigInternal *const vulkan_encode_ffv1_hw_configs[]
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
This encoder can reorder user opaque values from input AVFrames and return them with corresponding ou...
static int vulkan_encode_ffv1_receive_packet(AVCodecContext *avctx, AVPacket *pkt)
#define CODEC_LONG_NAME(str)
#define LIBAVUTIL_VERSION_INT
#define FF_CODEC_RECEIVE_PACKET_CB(func)
const char * av_default_item_name(void *ptr)
Return the context name.
int(* init)(AVBSFContext *ctx)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
#define HW_CONFIG_ENCODER_FRAMES(format, device_type_)
static av_cold int vulkan_encode_ffv1_close(AVCodecContext *avctx)
static const AVOption vulkan_encode_ffv1_options[]
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
static const FFCodecDefault vulkan_encode_ffv1_defaults[]
static av_cold int vulkan_encode_ffv1_init(AVCodecContext *avctx)