Go to the source code of this file.
|
enum | UnitElems {
UNIT_MASTERING_DISPLAY = 1 << 0,
UNIT_CONTENT_LIGHT_LEVEL = 1 << 1,
UNIT_AUD = 1 << 0,
UNIT_SEI_TIMING = 1 << 1,
UNIT_SEI_IDENTIFIER = 1 << 2,
UNIT_SEI_RECOVERY = 1 << 3,
UNIT_SEI_A53_CC = 1 << 4,
UNIT_AUD = 1 << 0,
UNIT_SEI_MASTERING_DISPLAY = 1 << 1,
UNIT_SEI_CONTENT_LIGHT_LEVEL = 1 << 2,
UNIT_SEI_A53_CC = 1 << 3
} |
|
|
static int | init_pic_rc (AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VkVideoEncodeRateControlInfoKHR *rc_info, VkVideoEncodeRateControlLayerInfoKHR *rc_layer) |
|
static void | set_name_slot (int slot, int *slot_indices, uint32_t allowed_idx, int group) |
|
static int | init_pic_params (AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VkVideoEncodeInfoKHR *encode_info) |
|
static int | init_profile (AVCodecContext *avctx, VkVideoProfileInfoKHR *profile, void *pnext) |
|
static int | init_enc_options (AVCodecContext *avctx) |
|
static av_cold int | init_sequence_headers (AVCodecContext *avctx) |
|
static av_cold int | base_unit_to_vk (AVCodecContext *avctx, VulkanAV1Units *vk_units) |
|
static int | create_session_params (AVCodecContext *avctx) |
|
static int | parse_feedback_units (AVCodecContext *avctx, const uint8_t *data, size_t size) |
|
static int | init_base_units (AVCodecContext *avctx) |
|
static int | vulkan_encode_av1_add_obu (AVCodecContext *avctx, CodedBitstreamFragment *au, uint8_t type, void *obu_unit) |
|
static int | vulkan_encode_av1_write_obu (AVCodecContext *avctx, uint8_t *data, size_t *data_len, CodedBitstreamFragment *obu) |
|
static int | write_sequence_header (AVCodecContext *avctx, FFHWBaseEncodePicture *base_pic, uint8_t *data, size_t *data_len) |
|
static int | write_extra_headers (AVCodecContext *avctx, FFHWBaseEncodePicture *base_pic, uint8_t *data, size_t *data_len) |
|
static int | write_padding (AVCodecContext *avctx, uint32_t padding, uint8_t *data, size_t *data_len) |
|
static av_cold int | vulkan_encode_av1_init (AVCodecContext *avctx) |
|
static av_cold int | vulkan_encode_av1_close (AVCodecContext *avctx) |
|
◆ OFFSET
◆ FLAGS
◆ PROFILE
◆ LEVEL
◆ UnitElems
Enumerator |
---|
UNIT_MASTERING_DISPLAY | |
UNIT_CONTENT_LIGHT_LEVEL | |
UNIT_AUD | |
UNIT_SEI_TIMING | |
UNIT_SEI_IDENTIFIER | |
UNIT_SEI_RECOVERY | |
UNIT_SEI_A53_CC | |
UNIT_AUD | |
UNIT_SEI_MASTERING_DISPLAY | |
UNIT_SEI_CONTENT_LIGHT_LEVEL | |
UNIT_SEI_A53_CC | |
Definition at line 42 of file vulkan_encode_av1.c.
◆ init_pic_rc()
◆ set_name_slot()
static void set_name_slot |
( |
int |
slot, |
|
|
int * |
slot_indices, |
|
|
uint32_t |
allowed_idx, |
|
|
int |
group |
|
) |
| |
|
static |
◆ init_pic_params()
set the nearest frame in L0 as all reference frame.
set the 2nd nearest frame in L0 as Golden frame.
B frame will not be referenced, disable its recon frame.
Use LAST_FRAME and BWDREF_FRAME for reference.
Definition at line 176 of file vulkan_encode_av1.c.
◆ init_profile()
static int init_profile |
( |
AVCodecContext * |
avctx, |
|
|
VkVideoProfileInfoKHR * |
profile, |
|
|
void * |
pnext |
|
) |
| |
|
static |
◆ init_enc_options()
◆ init_sequence_headers()
◆ base_unit_to_vk()
◆ create_session_params()
◆ parse_feedback_units()
static int parse_feedback_units |
( |
AVCodecContext * |
avctx, |
|
|
const uint8_t * |
data, |
|
|
size_t |
size |
|
) |
| |
|
static |
◆ init_base_units()
◆ vulkan_encode_av1_add_obu()
◆ vulkan_encode_av1_write_obu()
◆ write_sequence_header()
◆ write_extra_headers()
◆ write_padding()
static int write_padding |
( |
AVCodecContext * |
avctx, |
|
|
uint32_t |
padding, |
|
|
uint8_t * |
data, |
|
|
size_t * |
data_len |
|
) |
| |
|
static |
◆ vulkan_encode_av1_init()
◆ vulkan_encode_av1_close()
◆ ff_vk_enc_av1_desc
Initial value:= {
.encode_op = VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR,
.ext_props = {
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_EXTENSION_NAME,
.specVersion = VK_STD_VULKAN_VIDEO_CODEC_AV1_ENCODE_SPEC_VERSION,
},
}
Definition at line 32 of file vulkan_encode_av1.c.
Referenced by vulkan_encode_av1_init().
◆ enc_cb
◆ vulkan_encode_av1_options
const AVOption vulkan_encode_av1_options[] |
|
static |
◆ vulkan_encode_av1_defaults
Initial value:= {
{ "b", "0" },
{ "bf", "2" },
{ "g", "300" },
{ "qmin", "1" },
{ "qmax", "255" },
}
Definition at line 1364 of file vulkan_encode_av1.c.
◆ vulkan_encode_av1_class
const AVClass vulkan_encode_av1_class |
|
static |
◆ ff_av1_vulkan_encoder
const FFCodec ff_av1_vulkan_encoder |
Initial value:= {
.p.name = "av1_vulkan",
},
.p.wrapper_name = "vulkan",
}
Definition at line 1380 of file vulkan_encode_av1.c.
@ FF_HW_FLAG_B_PICTURE_REFERENCES
AVPixelFormat
Pixel format.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
const AVCodecHWConfigInternal *const ff_vulkan_encode_hw_configs[]
Paperwork.
static int init_pic_rc(AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VkVideoEncodeRateControlInfoKHR *rc_info, VkVideoEncodeRateControlLayerInfoKHR *rc_layer)
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
@ AV_PIX_FMT_VULKAN
Vulkan hardware images.
static const FFCodecDefault vulkan_encode_av1_defaults[]
static int write_extra_headers(AVCodecContext *avctx, FFHWBaseEncodePicture *base_pic, uint8_t *data, size_t *data_len)
#define AV_CODEC_CAP_ENCODER_FLUSH
This encoder can be flushed using avcodec_flush_buffers().
static const AVClass vulkan_encode_av1_class
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
This encoder can reorder user opaque values from input AVFrames and return them with corresponding ou...
@ FF_HW_FLAG_SLICE_CONTROL
#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.
#define VK_ENC_FLAG_NO_DELAY
static av_cold int vulkan_encode_av1_close(AVCodecContext *avctx)
int(* init)(AVBSFContext *ctx)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
static int write_padding(AVCodecContext *avctx, uint32_t padding, uint8_t *data, size_t *data_len)
static int init_profile(AVCodecContext *avctx, VkVideoProfileInfoKHR *profile, void *pnext)
int ff_vulkan_encode_receive_packet(AVCodecContext *avctx, AVPacket *pkt)
Encode.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default value
static int write_sequence_headers(AVCodecContext *avctx, FFHWBaseEncodePicture *base_pic, uint8_t *data, size_t *data_len)
static int write_sequence_header(AVCodecContext *avctx, FFHWBaseEncodePicture *base_pic, uint8_t *data, size_t *data_len)
#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 AVOption vulkan_encode_av1_options[]
static av_cold int vulkan_encode_av1_init(AVCodecContext *avctx)
#define FF_VK_EXT_VIDEO_ENCODE_AV1
static int write_filler(AVCodecContext *avctx, uint32_t filler, uint8_t *data, size_t *data_len)
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.
static int init_pic_params(AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VkVideoEncodeInfoKHR *encode_info)