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

Function create_session_params

libavcodec/vulkan_encode_h265.c:1156–1201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1154}
1155
1156static int create_session_params(AVCodecContext *avctx)
1157{
1158 int err;
1159 VulkanEncodeH265Context *enc = avctx->priv_data;
1160 FFVulkanEncodeContext *ctx = &enc->common;
1161 FFVulkanContext *s = &ctx->s;
1162 FFVulkanFunctions *vk = &ctx->s.vkfn;
1163
1164 VulkanH265Units vk_units = { 0 };
1165
1166 VkVideoEncodeH265SessionParametersAddInfoKHR h265_params_info;
1167 VkVideoEncodeH265SessionParametersCreateInfoKHR h265_params;
1168
1169 /* Convert it to Vulkan */
1170 err = base_unit_to_vk(avctx, &vk_units);
1171 if (err < 0) {
1172 av_log(avctx, AV_LOG_ERROR, "Unable to convert SPS/PPS units to Vulkan: %s\n",
1173 av_err2str(err));
1174 return err;
1175 }
1176
1177 /* Destroy the session params */
1178 if (ctx->session_params)
1179 vk->DestroyVideoSessionParametersKHR(s->hwctx->act_dev,
1180 ctx->session_params,
1181 s->hwctx->alloc);
1182
1183 h265_params_info = (VkVideoEncodeH265SessionParametersAddInfoKHR) {
1184 .sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR,
1185 .pStdSPSs = &vk_units.sps,
1186 .stdSPSCount = 1,
1187 .pStdPPSs = &vk_units.pps,
1188 .stdPPSCount = 1,
1189 .pStdVPSs = &vk_units.vps,
1190 .stdVPSCount = 1,
1191 };
1192 h265_params = (VkVideoEncodeH265SessionParametersCreateInfoKHR) {
1193 .sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
1194 .maxStdSPSCount = 1,
1195 .maxStdPPSCount = 1,
1196 .maxStdVPSCount = 1,
1197 .pParametersAddInfo = &h265_params_info,
1198 };
1199
1200 return ff_vulkan_encode_create_session_params(avctx, ctx, &h265_params);
1201}
1202
1203static int parse_feedback_units(AVCodecContext *avctx,
1204 const uint8_t *data, size_t size,

Callers 1

init_base_unitsFunction · 0.70

Calls 3

av_logFunction · 0.85
base_unit_to_vkFunction · 0.70

Tested by

no test coverage detected