Go to the source code of this file.
|
static int | init_pic_rc (AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VkVideoEncodeRateControlInfoKHR *rc_info, VkVideoEncodeRateControlLayerInfoKHR *rc_layer) |
|
static int | vk_enc_h264_update_pic_info (AVCodecContext *avctx, FFHWBaseEncodePicture *pic) |
|
static void | setup_slices (AVCodecContext *avctx, FFHWBaseEncodePicture *pic) |
|
static void | vk_enc_h264_default_ref_pic_list (AVCodecContext *avctx, FFHWBaseEncodePicture *pic, FFHWBaseEncodePicture **rpl0, FFHWBaseEncodePicture **rpl1, int *rpl_size) |
|
static void | setup_refs (AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VkVideoEncodeInfoKHR *encode_info) |
|
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, VulkanH264Units *vk_units) |
|
static int | create_session_params (AVCodecContext *avctx) |
|
static int | parse_feedback_units (AVCodecContext *avctx, const uint8_t *data, size_t size, int sps_override, int pps_override) |
|
static int | init_base_units (AVCodecContext *avctx) |
|
static int | vulkan_encode_h264_add_nal (AVCodecContext *avctx, CodedBitstreamFragment *au, void *nal_unit) |
|
static int | write_access_unit (AVCodecContext *avctx, uint8_t *data, size_t *data_len, CodedBitstreamFragment *au) |
|
static int | write_sequence_headers (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_filler (AVCodecContext *avctx, uint32_t filler, uint8_t *data, size_t *data_len) |
|
static av_cold int | vulkan_encode_h264_init (AVCodecContext *avctx) |
|
static av_cold int | vulkan_encode_h264_close (AVCodecContext *avctx) |
|
◆ OFFSET
◆ FLAGS
◆ PROFILE
◆ LEVEL
◆ UnitElems
Enumerator |
---|
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 34 of file vulkan_encode_h264.c.
◆ init_pic_rc()
◆ vk_enc_h264_update_pic_info()
◆ setup_slices()
◆ vk_enc_h264_default_ref_pic_list()
◆ setup_refs()
◆ init_pic_params()
◆ 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, |
|
|
int |
sps_override, |
|
|
int |
pps_override |
|
) |
| |
|
static |
◆ init_base_units()
◆ vulkan_encode_h264_add_nal()
◆ write_access_unit()
◆ write_sequence_headers()
◆ write_extra_headers()
◆ write_filler()
static int write_filler |
( |
AVCodecContext * |
avctx, |
|
|
uint32_t |
filler, |
|
|
uint8_t * |
data, |
|
|
size_t * |
data_len |
|
) |
| |
|
static |
◆ vulkan_encode_h264_init()
◆ vulkan_encode_h264_close()
◆ ff_vk_enc_h264_desc
Initial value:= {
.encode_op = VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR,
.ext_props = {
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME,
.specVersion = VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION,
},
}
Definition at line 42 of file vulkan_encode_h264.c.
Referenced by vulkan_encode_h264_init().
◆ vulkan_encode_h264_sei_identifier_uuid
const uint8_t vulkan_encode_h264_sei_identifier_uuid[16] |
|
static |
Initial value:= {
0x03, 0xfd, 0xf2, 0x0a, 0x5d, 0x4c, 0x05, 0x48,
0x20, 0x98, 0xca, 0x6b, 0x0c, 0x95, 0x30, 0x1c,
}
Definition at line 53 of file vulkan_encode_h264.c.
Referenced by vulkan_encode_h264_init().
◆ enc_cb
◆ vulkan_encode_h264_options
const AVOption vulkan_encode_h264_options[] |
|
static |
◆ vulkan_encode_h264_defaults
Initial value:= {
{ "b", "0" },
{ "bf", "2" },
{ "g", "300" },
{ "i_qfactor", "1" },
{ "i_qoffset", "0" },
{ "b_qfactor", "1" },
{ "b_qoffset", "0" },
{ "qmin", "-1" },
{ "qmax", "-1" },
}
Definition at line 1623 of file vulkan_encode_h264.c.
◆ vulkan_encode_h264_class
const AVClass vulkan_encode_h264_class |
|
static |
◆ ff_h264_vulkan_encoder
const FFCodec ff_h264_vulkan_encoder |
Initial value:= {
.p.name = "h264_vulkan",
},
.p.wrapper_name = "vulkan",
}
Definition at line 1643 of file vulkan_encode_h264.c.
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...
@ FF_HW_FLAG_B_PICTURE_REFERENCES
const AVCodecHWConfigInternal *const ff_vulkan_encode_hw_configs[]
Paperwork.
#define AV_CODEC_CAP_HARDWARE
Codec is backed by a hardware implementation.
static av_cold int vulkan_encode_h264_init(AVCodecContext *avctx)
static av_cold int vulkan_encode_h264_close(AVCodecContext *avctx)
@ AV_PIX_FMT_VULKAN
Vulkan hardware images.
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().
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
This encoder can reorder user opaque values from input AVFrames and return them with corresponding ou...
#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.
static const AVOption vulkan_encode_h264_options[]
static const FFCodecDefault vulkan_encode_h264_defaults[]
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 init_profile(AVCodecContext *avctx, VkVideoProfileInfoKHR *profile, void *pnext)
static int init_pic_rc(AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VkVideoEncodeRateControlInfoKHR *rc_info, VkVideoEncodeRateControlLayerInfoKHR *rc_layer)
@ FF_HW_FLAG_NON_IDR_KEY_PICTURES
static const AVClass vulkan_encode_h264_class
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
#define FF_VK_EXT_VIDEO_ENCODE_H264
static int write_filler(AVCodecContext *avctx, uint32_t filler, uint8_t *data, size_t *data_len)
static int init_pic_params(AVCodecContext *avctx, FFHWBaseEncodePicture *pic, VkVideoEncodeInfoKHR *encode_info)
@ AV_OPT_TYPE_CONST
Special option type for declaring named constants.