Go to the source code of this file.
|
| static int | vk_h264_fill_pict (AVCodecContext *avctx, H264Picture **ref_src, VkVideoReferenceSlotInfoKHR *ref_slot, VkVideoPictureResourceInfoKHR *ref, VkVideoDecodeH264DpbSlotInfoKHR *vkh264_ref, StdVideoDecodeH264ReferenceInfo *h264_ref, H264Picture *pic, int is_current, int is_field, int picture_structure, int dpb_slot_index) |
| |
| static StdVideoH264LevelIdc | convert_to_vk_level_idc (int level_idc) |
| |
| static void | set_sps (const SPS *sps, StdVideoH264ScalingLists *vksps_scaling, StdVideoH264HrdParameters *vksps_vui_header, StdVideoH264SequenceParameterSetVui *vksps_vui, StdVideoH264SequenceParameterSet *vksps) |
| |
| static void | set_pps (const PPS *pps, const SPS *sps, StdVideoH264ScalingLists *vkpps_scaling, StdVideoH264PictureParameterSet *vkpps) |
| |
| static int | vk_h264_create_params (AVCodecContext *avctx, VkVideoSessionParametersKHR **buf) |
| |
| static int | vk_h264_start_frame (AVCodecContext *avctx, av_unused const AVBufferRef *buffer_ref, av_unused const uint8_t *buffer, av_unused uint32_t size) |
| |
| static int | vk_h264_decode_slice (AVCodecContext *avctx, const uint8_t *data, uint32_t size) |
| |
| static int | vk_h264_end_frame (AVCodecContext *avctx) |
| |
| static void | vk_h264_free_frame_priv (AVRefStructOpaque _hwctx, void *data) |
| |
◆ vk_h264_fill_pict()
| static int vk_h264_fill_pict |
( |
AVCodecContext * | avctx, |
|
|
H264Picture ** | ref_src, |
|
|
VkVideoReferenceSlotInfoKHR * | ref_slot, |
|
|
VkVideoPictureResourceInfoKHR * | ref, |
|
|
VkVideoDecodeH264DpbSlotInfoKHR * | vkh264_ref, |
|
|
StdVideoDecodeH264ReferenceInfo * | h264_ref, |
|
|
H264Picture * | pic, |
|
|
int | is_current, |
|
|
int | is_field, |
|
|
int | picture_structure, |
|
|
int | dpb_slot_index ) |
|
static |
◆ convert_to_vk_level_idc()
| static StdVideoH264LevelIdc convert_to_vk_level_idc |
( |
int | level_idc | ) |
|
|
static |
◆ set_sps()
| static void set_sps |
( |
const SPS * | sps, |
|
|
StdVideoH264ScalingLists * | vksps_scaling, |
|
|
StdVideoH264HrdParameters * | vksps_vui_header, |
|
|
StdVideoH264SequenceParameterSetVui * | vksps_vui, |
|
|
StdVideoH264SequenceParameterSet * | vksps ) |
|
static |
◆ set_pps()
| static void set_pps |
( |
const PPS * | pps, |
|
|
const SPS * | sps, |
|
|
StdVideoH264ScalingLists * | vkpps_scaling, |
|
|
StdVideoH264PictureParameterSet * | vkpps ) |
|
static |
◆ vk_h264_create_params()
| static int vk_h264_create_params |
( |
AVCodecContext * | avctx, |
|
|
VkVideoSessionParametersKHR ** | buf ) |
|
static |
◆ vk_h264_start_frame()
◆ vk_h264_decode_slice()
| static int vk_h264_decode_slice |
( |
AVCodecContext * | avctx, |
|
|
const uint8_t * | data, |
|
|
uint32_t | size ) |
|
static |
◆ vk_h264_end_frame()
◆ vk_h264_free_frame_priv()
◆ ff_vk_dec_h264_desc
Initial value:= {
.queue_flags = VK_QUEUE_VIDEO_DECODE_BIT_KHR,
.decode_op = VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR,
.ext_props = {
.extensionName = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME,
.specVersion = VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION,
},
}
#define FF_VK_EXT_VIDEO_DECODE_H264
Definition at line 26 of file vulkan_h264.c.
◆ h264_scaling_list8_order
| const int h264_scaling_list8_order[] = { 0, 3, 1, 4, 2, 5 } |
|
static |
◆ ff_h264_vulkan_hwaccel
Initial value:= {
.p.name = "h264_vulkan",
}
int(* init)(AVBSFContext *ctx)
#define HWACCEL_CAP_ASYNC_SAFE
Header providing the internals of AVHWAccel.
static av_cold void uninit(AVBitStreamFilterContext *ctx)
@ AV_PIX_FMT_VULKAN
Vulkan hardware images.
int ff_vk_update_thread_context(AVCodecContext *dst, const AVCodecContext *src)
Synchronize the contexts between 2 threads.
int ff_vk_decode_init(AVCodecContext *avctx)
Initialize decoder.
int ff_vk_params_invalidate(AVCodecContext *avctx, int t, const uint8_t *b, uint32_t s)
Removes current session parameters to recreate them.
int ff_vk_frame_params(AVCodecContext *avctx, AVBufferRef *hw_frames_ctx)
Initialize hw_frames_ctx with the parameters needed to decode the stream using the parameters from av...
int ff_vk_decode_uninit(AVCodecContext *avctx)
Free decoder.
static void vk_h264_free_frame_priv(AVRefStructOpaque _hwctx, void *data)
static int vk_h264_start_frame(AVCodecContext *avctx, av_unused const AVBufferRef *buffer_ref, av_unused const uint8_t *buffer, av_unused uint32_t size)
static int vk_h264_end_frame(AVCodecContext *avctx)
static int vk_h264_decode_slice(AVCodecContext *avctx, const uint8_t *data, uint32_t size)
Definition at line 585 of file vulkan_h264.c.