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

Function vulkan_encode_h265_init

libavcodec/vulkan_encode_h265.c:1525–1696  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1523};
1524
1525static av_cold int vulkan_encode_h265_init(AVCodecContext *avctx)
1526{
1527 int err, ref_l0, ref_l1;
1528 VulkanEncodeH265Context *enc = avctx->priv_data;
1529 FFVulkanEncodeContext *ctx = &enc->common;
1530 FFHWBaseEncodeContext *base_ctx = &ctx->base;
1531 int flags;
1532
1533 if (avctx->profile == AV_PROFILE_UNKNOWN)
1534 avctx->profile = enc->common.opts.profile;
1535
1536 enc->caps = (VkVideoEncodeH265CapabilitiesKHR) {
1537 .sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR,
1538 };
1539
1540 enc->quality_props = (VkVideoEncodeH265QualityLevelPropertiesKHR) {
1541 .sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR,
1542 };
1543
1544 err = ff_vulkan_encode_init(avctx, &enc->common,
1545 &ff_vk_enc_h265_desc, &enc_cb,
1546 &enc->caps, &enc->quality_props);
1547 if (err < 0)
1548 return err;
1549
1550 av_log(avctx, AV_LOG_VERBOSE, "H265 encoder capabilities:\n");
1551 av_log(avctx, AV_LOG_VERBOSE, " Standard capability flags:\n");
1552 av_log(avctx, AV_LOG_VERBOSE, " separate_color_plane: %i\n",
1553 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR));
1554 av_log(avctx, AV_LOG_VERBOSE, " sample_adaptive_offset: %i\n",
1555 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR));
1556 av_log(avctx, AV_LOG_VERBOSE, " scaling_lists: %i\n",
1557 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR));
1558 av_log(avctx, AV_LOG_VERBOSE, " pcm: %i\n",
1559 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR));
1560 av_log(avctx, AV_LOG_VERBOSE, " temporal_mvp: %i\n",
1561 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR));
1562 av_log(avctx, AV_LOG_VERBOSE, " init_qp: %i\n",
1563 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR));
1564 av_log(avctx, AV_LOG_VERBOSE, " weighted:%s%s\n",
1565 enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR ?
1566 " pred" : "",
1567 enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR ?
1568 " bipred" : "");
1569 av_log(avctx, AV_LOG_VERBOSE, " parallel_merge_level: %i\n",
1570 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR));
1571 av_log(avctx, AV_LOG_VERBOSE, " sign_data_hiding: %i\n",
1572 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR));
1573 av_log(avctx, AV_LOG_VERBOSE, " transform_skip:%s%s\n",
1574 enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR ?
1575 " set" : "",
1576 enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR ?
1577 " unset" : "");
1578 av_log(avctx, AV_LOG_VERBOSE, " slice_chroma_qp_offsets: %i\n",
1579 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR));
1580 av_log(avctx, AV_LOG_VERBOSE, " transquant_bypass: %i\n",
1581 !!(enc->caps.stdSyntaxFlags & VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR));
1582 av_log(avctx, AV_LOG_VERBOSE, " constrained_intra_pred: %i\n",

Callers

nothing calls this directly

Calls 6

ff_vulkan_encode_initFunction · 0.85
av_logFunction · 0.85
init_enc_optionsFunction · 0.70
init_base_unitsFunction · 0.70

Tested by

no test coverage detected