forked from FFmpeg/FFmpeg
lavc: add h264_vulkan hardware encoder
This commit adds the first Vulkan hardware encoder. Currently, P, and **B**-frames are supported. This marks the first implementation to support both. The encoder has feature-parity with VAAPI.
This commit is contained in:
parent
37243b2a08
commit
f85d94730c
4 changed files with 1688 additions and 0 deletions
1
configure
vendored
1
configure
vendored
|
@ -3367,6 +3367,7 @@ h264_qsv_encoder_select="atsc_a53 qsvenc"
|
|||
h264_rkmpp_decoder_deps="rkmpp"
|
||||
h264_rkmpp_decoder_select="h264_mp4toannexb_bsf"
|
||||
h264_vaapi_encoder_select="atsc_a53 cbs_h264 vaapi_encode"
|
||||
h264_vulkan_encoder_select="cbs_h264 vulkan_encode"
|
||||
h264_v4l2m2m_decoder_deps="v4l2_m2m h264_v4l2_m2m"
|
||||
h264_v4l2m2m_decoder_select="h264_mp4toannexb_bsf"
|
||||
h264_v4l2m2m_encoder_deps="v4l2_m2m h264_v4l2_m2m"
|
||||
|
|
|
@ -426,6 +426,9 @@ OBJS-$(CONFIG_H264_QSV_ENCODER) += qsvenc_h264.o
|
|||
OBJS-$(CONFIG_H264_RKMPP_DECODER) += rkmppdec.o
|
||||
OBJS-$(CONFIG_H264_VAAPI_ENCODER) += vaapi_encode_h264.o h264_levels.o \
|
||||
h2645data.o hw_base_encode_h264.o
|
||||
OBJS-$(CONFIG_H264_VULKAN_ENCODER) += vulkan_encode.o vulkan_encode_h264.o \
|
||||
hw_base_encode.o hw_base_encode_h264.o \
|
||||
h264_levels.o h2645data.o
|
||||
OBJS-$(CONFIG_H264_VIDEOTOOLBOX_ENCODER) += videotoolboxenc.o
|
||||
OBJS-$(CONFIG_H264_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
||||
OBJS-$(CONFIG_H264_V4L2M2M_ENCODER) += v4l2_m2m_enc.o
|
||||
|
|
|
@ -850,6 +850,7 @@ extern const FFCodec ff_h264_qsv_encoder;
|
|||
extern const FFCodec ff_h264_v4l2m2m_encoder;
|
||||
extern const FFCodec ff_h264_vaapi_encoder;
|
||||
extern const FFCodec ff_h264_videotoolbox_encoder;
|
||||
extern const FFCodec ff_h264_vulkan_encoder;
|
||||
extern const FFCodec ff_hevc_amf_encoder;
|
||||
extern const FFCodec ff_hevc_cuvid_decoder;
|
||||
extern const FFCodec ff_hevc_d3d12va_encoder;
|
||||
|
|
1683
libavcodec/vulkan_encode_h264.c
Normal file
1683
libavcodec/vulkan_encode_h264.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue