diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.c b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.c index ff0617051c..15b3080fb4 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.c +++ b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.c @@ -661,16 +661,8 @@ gst_vulkan_encoder_start (GstVulkanEncoder * self, priv->profile = *profile; - /* *INDENT-OFF* */ - priv->profile.usage.encode = (VkVideoEncodeUsageInfoKHR) { - .pNext = &priv->profile.codec, - .sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR, - .tuningMode = VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR, - .videoContentHints = VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR, - .videoUsageHints = VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR, - }; - /* *INDENT-ON* */ - + /* ensure the chain up of structure */ + priv->profile.usage.encode.pNext = &priv->profile.codec; priv->profile.profile.pNext = &priv->profile.usage.encode; /* *INDENT-OFF* */ diff --git a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c index 3d1a8002c3..6f4010fa52 100644 --- a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c +++ b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c @@ -757,6 +757,13 @@ setup_h265_encoder (uint32_t width, uint32_t height, gint vps_id, .chromaBitDepth = VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, .lumaBitDepth = VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR, }, + .usage.encode = { + .pNext = &profile.codec, + .sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR, + .videoUsageHints = VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR, + .videoContentHints = VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR, + .tuningMode = VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR, + }, .codec.h265enc = (VkVideoEncodeH265ProfileInfoKHR) { .sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR, .stdProfileIdc = profile_idc,