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

Function create_empty_session_parameters

libavcodec/vulkan_decode.c:377–416  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

375}
376
377static int create_empty_session_parameters(AVCodecContext *avctx,
378 FFVulkanDecodeShared *ctx,
379 VkVideoSessionParametersKHR *empty_session_params)
380{
381 if (avctx->codec_id == AV_CODEC_ID_VP9)
382 return 0;
383
384 VkVideoDecodeH264SessionParametersCreateInfoKHR h264_params = {
385 .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR,
386 };
387 VkVideoDecodeH265SessionParametersCreateInfoKHR h265_params = {
388 .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR,
389 };
390 StdVideoAV1SequenceHeader av1_empty_seq = { 0 };
391 VkVideoDecodeAV1SessionParametersCreateInfoKHR av1_params = {
392 .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR,
393 .pStdSequenceHeader = &av1_empty_seq,
394 };
395 VkVideoSessionParametersCreateInfoKHR session_params_create = {
396 .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR,
397 .pNext = avctx->codec_id == AV_CODEC_ID_H264 ? (void *)&h264_params :
398 avctx->codec_id == AV_CODEC_ID_HEVC ? (void *)&h265_params :
399 avctx->codec_id == AV_CODEC_ID_AV1 ? (void *)&av1_params :
400 NULL,
401 .videoSession = ctx->common.session,
402 };
403
404 VkResult ret;
405 FFVulkanContext *s = &ctx->s;
406 FFVulkanFunctions *vk = &s->vkfn;
407 ret = vk->CreateVideoSessionParametersKHR(s->hwctx->act_dev, &session_params_create,
408 s->hwctx->alloc, empty_session_params);
409 if (ret != VK_SUCCESS) {
410 av_log(avctx, AV_LOG_ERROR, "Unable to create empty Vulkan video session parameters: %s!\n",
411 ff_vk_ret2str(ret));
412 return AVERROR_EXTERNAL;
413 }
414
415 return 0;
416}
417
418static int decode_reset(AVCodecContext *avctx, FFVulkanDecodeShared *ctx)
419{

Callers 1

decode_resetFunction · 0.85

Calls 2

av_logFunction · 0.85
ff_vk_ret2strFunction · 0.85

Tested by

no test coverage detected