MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / ff_vulkan_encode_create_session_params

Function ff_vulkan_encode_create_session_params

libavcodec/vulkan_encode.c:1070–1102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1068}
1069
1070int ff_vulkan_encode_create_session_params(AVCodecContext *avctx, FFVulkanEncodeContext *ctx,
1071 void *codec_params_pnext)
1072{
1073 VkResult ret;
1074 FFVulkanFunctions *vk = &ctx->s.vkfn;
1075 FFVulkanContext *s = &ctx->s;
1076
1077 VkVideoEncodeQualityLevelInfoKHR q_info;
1078 VkVideoSessionParametersCreateInfoKHR session_params_create;
1079
1080 q_info = (VkVideoEncodeQualityLevelInfoKHR) {
1081 .sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR,
1082 .pNext = codec_params_pnext,
1083 .qualityLevel = ctx->opts.quality,
1084 };
1085 session_params_create = (VkVideoSessionParametersCreateInfoKHR) {
1086 .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
1087 .pNext = &q_info,
1088 .videoSession = ctx->common.session,
1089 .videoSessionParametersTemplate = VK_NULL_HANDLE,
1090 };
1091
1092 /* Create session parameters */
1093 ret = vk->CreateVideoSessionParametersKHR(s->hwctx->act_dev, &session_params_create,
1094 s->hwctx->alloc, &ctx->session_params);
1095 if (ret != VK_SUCCESS) {
1096 av_log(avctx, AV_LOG_ERROR, "Unable to create Vulkan video session parameters: %s!\n",
1097 ff_vk_ret2str(ret));
1098 return AVERROR_EXTERNAL;
1099 }
1100
1101 return 0;
1102}

Callers 3

create_session_paramsFunction · 0.85
create_session_paramsFunction · 0.85
create_session_paramsFunction · 0.85

Calls 2

av_logFunction · 0.85
ff_vk_ret2strFunction · 0.85

Tested by

no test coverage detected