diff --git a/girs/GstVulkan-1.0.gir b/girs/GstVulkan-1.0.gir
index a889f79d69..10604dd934 100644
--- a/girs/GstVulkan-1.0.gir
+++ b/girs/GstVulkan-1.0.gir
@@ -5924,25 +5924,40 @@ signalled and freed.
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdecoder-private.c b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdecoder-private.c
index db859a5ffc..53b3bd98b6 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdecoder-private.c
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkdecoder-private.c
@@ -136,7 +136,6 @@ gst_vulkan_decoder_start (GstVulkanDecoder * self,
GstVulkanDecoderPrivate *priv;
VkPhysicalDevice gpu;
VkResult res;
- VkVideoDecodeCapabilitiesKHR dec_caps;
VkVideoFormatPropertiesKHR *fmts = NULL;
VkVideoProfileListInfoKHR profile_list = {
.sType = VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR,
@@ -191,7 +190,7 @@ gst_vulkan_decoder_start (GstVulkanDecoder * self,
switch (self->codec) {
case VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR:
/* *INDENT-OFF* */
- priv->caps.codec.h264dec = (VkVideoDecodeH264CapabilitiesKHR) {
+ priv->caps.decoder.codec.h264 = (VkVideoDecodeH264CapabilitiesKHR) {
.sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR,
};
/* *INDENT-ON* */
@@ -199,7 +198,7 @@ gst_vulkan_decoder_start (GstVulkanDecoder * self,
break;
case VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR:
/* *INDENT-OFF* */
- priv->caps.codec.h265dec = (VkVideoDecodeH265CapabilitiesKHR) {
+ priv->caps.decoder.codec.h265 = (VkVideoDecodeH265CapabilitiesKHR) {
.sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR,
};
/* *INDENT-ON* */
@@ -210,13 +209,13 @@ gst_vulkan_decoder_start (GstVulkanDecoder * self,
}
/* *INDENT-OFF* */
- dec_caps = (VkVideoDecodeCapabilitiesKHR) {
+ priv->caps.decoder.caps = (VkVideoDecodeCapabilitiesKHR) {
.sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR,
- .pNext = &priv->caps.codec,
+ .pNext = &priv->caps.decoder.codec,
};
priv->caps.caps = (VkVideoCapabilitiesKHR) {
.sType = VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR,
- .pNext = &dec_caps,
+ .pNext = &priv->caps.decoder.caps,
};
/* *INDENT-ON* */
@@ -229,10 +228,10 @@ gst_vulkan_decoder_start (GstVulkanDecoder * self,
switch (self->codec) {
case VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR:
- maxlevel = priv->caps.codec.h264dec.maxLevelIdc;
+ maxlevel = priv->caps.decoder.codec.h264.maxLevelIdc;
break;
case VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR:
- maxlevel = priv->caps.codec.h265dec.maxLevelIdc;
+ maxlevel = priv->caps.decoder.codec.h265.maxLevelIdc;
break;
default:
maxlevel = 0;
@@ -273,11 +272,11 @@ gst_vulkan_decoder_start (GstVulkanDecoder * self,
GST_STR_NULL (priv->caps.caps.stdHeaderVersion.extensionName),
VK_CODEC_VERSION (priv->caps.caps.stdHeaderVersion.specVersion),
VK_CODEC_VERSION (_vk_codec_extensions[codec_idx].specVersion),
- dec_caps.flags ? "" : " invalid",
- dec_caps.flags &
+ priv->caps.decoder.caps.flags ? "" : " invalid",
+ priv->caps.decoder.caps.flags &
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR ?
" reuse_output_DPB" : "",
- dec_caps.flags &
+ priv->caps.decoder.caps.flags &
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR ?
" dedicated_DPB" : "");
@@ -288,7 +287,7 @@ gst_vulkan_decoder_start (GstVulkanDecoder * self,
* VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR - reports the
* implementation supports using distinct Video Picture Resources for decode
* DPB and decode output. */
- self->dedicated_dpb = ((dec_caps.flags &
+ self->dedicated_dpb = ((priv->caps.decoder.caps.flags &
VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR) == 0);
/* The DPB or Reconstructed Video Picture Resources for the video session may
@@ -828,7 +827,8 @@ gst_vulkan_decoder_caps (GstVulkanDecoder * self,
if (caps) {
*caps = priv->caps;
- caps->caps.pNext = &caps->codec;
+ caps->caps.pNext = &caps->decoder.caps;
+ caps->decoder.caps.pNext = &caps->decoder.codec;
}
return TRUE;
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 08244f85d3..516acd6f26 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
@@ -54,7 +54,6 @@ struct _GstVulkanEncoderPrivate
GstVulkanVideoSession session;
GstVulkanVideoCapabilities caps;
VkVideoFormatPropertiesKHR format;
- VkVideoEncodeCapabilitiesKHR enc_caps;
VkVideoEncodeRateControlInfoKHR rate_control_info;
GstVulkanVideoProfile profile;
@@ -492,7 +491,8 @@ gst_vulkan_encoder_caps (GstVulkanEncoder * self,
if (caps) {
*caps = priv->caps;
- caps->caps.pNext = &caps->codec;
+ caps->caps.pNext = &caps->encoder.caps;
+ caps->encoder.caps.pNext = &caps->encoder.codec;
}
return TRUE;
@@ -607,7 +607,7 @@ gst_vulkan_encoder_start (GstVulkanEncoder * self,
"Invalid profile");
return FALSE;
}
- priv->caps.codec.h264enc = (VkVideoEncodeH264CapabilitiesKHR) {
+ priv->caps.encoder.codec.h264 = (VkVideoEncodeH264CapabilitiesKHR) {
/* *INDENT-OFF* */
.sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR,
/* *INDENT-ON* */
@@ -620,7 +620,7 @@ gst_vulkan_encoder_start (GstVulkanEncoder * self,
"Invalid profile");
return FALSE;
}
- priv->caps.codec.h265enc = (VkVideoEncodeH265CapabilitiesKHR) {
+ priv->caps.encoder.codec.h265 = (VkVideoEncodeH265CapabilitiesKHR) {
/* *INDENT-OFF* */
.sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR,
/* *INDENT-ON* */
@@ -640,13 +640,13 @@ gst_vulkan_encoder_start (GstVulkanEncoder * self,
priv->profile.profile.pNext = &priv->profile.usage.encode;
/* *INDENT-OFF* */
- priv->enc_caps = (VkVideoEncodeCapabilitiesKHR) {
+ priv->caps.encoder.caps = (VkVideoEncodeCapabilitiesKHR) {
.sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR,
- .pNext = &priv->caps.codec,
+ .pNext = &priv->caps.encoder.codec,
};
priv->caps.caps = (VkVideoCapabilitiesKHR) {
.sType = VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR,
- .pNext = &priv->enc_caps,
+ .pNext = &priv->caps.encoder.caps,
};
/* *INDENT-ON* */
@@ -677,29 +677,29 @@ gst_vulkan_encoder_start (GstVulkanEncoder * self,
GST_OBJECT_LOCK (self);
if ((priv->prop.rate_control != VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR)
- && !(priv->prop.rate_control & priv->enc_caps.rateControlModes)) {
+ && !(priv->prop.rate_control & priv->caps.encoder.caps.rateControlModes)) {
g_set_error (error, GST_VULKAN_ERROR, VK_ERROR_INITIALIZATION_FAILED,
"The driver does not support the rate control requested %d, driver caps: %d",
- priv->prop.rate_control, priv->enc_caps.rateControlModes);
+ priv->prop.rate_control, priv->caps.encoder.caps.rateControlModes);
GST_OBJECT_UNLOCK (self);
return FALSE;
}
- if (priv->enc_caps.maxQualityLevels
- && priv->prop.quality_level >= priv->enc_caps.maxQualityLevels) {
+ if (priv->caps.encoder.caps.maxQualityLevels
+ && priv->prop.quality_level >= priv->caps.encoder.caps.maxQualityLevels) {
g_set_error (error, GST_VULKAN_ERROR, VK_ERROR_INITIALIZATION_FAILED,
"The driver does not support the quality level requested %d, driver caps: %d",
- priv->prop.quality_level, priv->enc_caps.maxQualityLevels);
+ priv->prop.quality_level, priv->caps.encoder.caps.maxQualityLevels);
GST_OBJECT_UNLOCK (self);
return FALSE;
}
- if (priv->enc_caps.maxBitrate
- && priv->prop.average_bitrate >= priv->enc_caps.maxBitrate) {
+ if (priv->caps.encoder.caps.maxBitrate
+ && priv->prop.average_bitrate >= priv->caps.encoder.caps.maxBitrate) {
g_set_error (error, GST_VULKAN_ERROR, VK_ERROR_INITIALIZATION_FAILED,
"The driver does not support the average bitrate requested %d, driver caps: %"
G_GUINT64_FORMAT, priv->prop.average_bitrate,
- priv->enc_caps.maxBitrate);
+ priv->caps.encoder.caps.maxBitrate);
GST_OBJECT_UNLOCK (self);
return FALSE;
}
@@ -723,7 +723,7 @@ gst_vulkan_encoder_start (GstVulkanEncoder * self,
query_create = (VkQueryPoolVideoEncodeFeedbackCreateInfoKHR) {
.sType = VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR,
.pNext = &profile->profile,
- .encodeFeedbackFlags = priv->enc_caps.supportedEncodeFeedbackFlags &
+ .encodeFeedbackFlags = priv->caps.encoder.caps.supportedEncodeFeedbackFlags &
(~VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR),
};
/* *INDENT-ON* */
@@ -750,7 +750,7 @@ gst_vulkan_encoder_start (GstVulkanEncoder * self,
priv->caps.caps.maxCodedExtent.width,
priv->caps.caps.minCodedExtent.height,
priv->caps.caps.maxCodedExtent.height,
- priv->enc_caps.maxBitrate,
+ priv->caps.encoder.caps.maxBitrate,
priv->caps.caps.flags &
VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR ?
" separate_references" : "");
@@ -759,7 +759,6 @@ gst_vulkan_encoder_start (GstVulkanEncoder * self,
!(priv->caps.
caps.flags & VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR);
- priv->caps.caps.pNext = NULL;
/* *INDENT-OFF* */
session_create = (VkVideoSessionCreateInfoKHR) {
@@ -1091,7 +1090,7 @@ gst_vulkan_encoder_encode (GstVulkanEncoder * self,
.sType = VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR,
.pNext = pic->codec_rc_layer_info,
.averageBitrate = priv->prop.average_bitrate,
- .maxBitrate = priv->enc_caps.maxBitrate,
+ .maxBitrate = priv->caps.encoder.caps.maxBitrate,
.frameRateNumerator = pic->fps_n,
.frameRateDenominator = pic->fps_d,
};
@@ -1184,7 +1183,8 @@ gst_vulkan_encoder_encode (GstVulkanEncoder * self,
priv->vk.CmdControlVideoCoding (cmd_buf->cmd, &coding_ctrl);
if (priv->prop.quality_level
- && priv->prop.quality_level <= priv->enc_caps.maxQualityLevels) {
+ && priv->prop.quality_level <=
+ priv->caps.encoder.caps.maxQualityLevels) {
/* *INDENT-OFF* */
quality_level_info = (VkVideoEncodeQualityLevelInfoKHR) {
diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h
index 07edc245cc..6b5fc6e953 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkvideoutils.h
@@ -80,23 +80,31 @@ struct _GstVulkanVideoCapabilities
VkVideoCapabilitiesKHR caps;
union
{
- VkBaseInStructure base;
- VkVideoDecodeH264CapabilitiesKHR h264dec;
- VkVideoDecodeH265CapabilitiesKHR h265dec;
- /**
- * GstVulkanVideoCapabilities.codec.h264enc:
- *
- * Since: 1.26
- */
- VkVideoEncodeH264CapabilitiesKHR h264enc;
- /**
- * GstVulkanVideoCapabilities.codec.h265enc:
- *
- * Since: 1.26
- */
- VkVideoEncodeH265CapabilitiesKHR h265enc;
- } codec;
+ struct
+ {
+ /*< private >*/
+ VkVideoDecodeCapabilitiesKHR caps;
+ union
+ {
+ /*< private >*/
+ VkVideoDecodeH264CapabilitiesKHR h264;
+ VkVideoDecodeH265CapabilitiesKHR h265;
+ } codec;
+ } decoder;
+ struct
+ {
+ /*< private >*/
+ VkVideoEncodeCapabilitiesKHR caps;
+ union
+ {
+ /*< private >*/
+ VkVideoEncodeH264CapabilitiesKHR h264;
+ VkVideoEncodeH265CapabilitiesKHR h265;
+ } codec;
+ } encoder;
+ };
#endif
+ /*< private >*/
gpointer _reserved[GST_PADDING];
};
diff --git a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c
index a4dd5db596..925b7a9ee9 100644
--- a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c
+++ b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c
@@ -503,7 +503,8 @@ encode_frame (GstVulkanEncoder * enc, GstVulkanH264EncodeFrame * frame,
.naluSliceEntryCount = 1,
.pNaluSliceEntries = &frame->slice_info,
.pStdPictureInfo = &frame->pic_info,
- .generatePrefixNalu = (enc_caps.codec.h264enc.flags & VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR),
+ .generatePrefixNalu = (enc_caps.encoder.codec.h264.flags
+ & VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR),
/* *INDENT-ON* */
};
@@ -891,7 +892,7 @@ GST_START_TEST (test_encoder_h264_i_p_b)
fail_unless (gst_vulkan_encoder_caps (enc, &enc_caps));
- if (!enc_caps.codec.h264enc.maxL1ReferenceCount) {
+ if (!enc_caps.encoder.codec.h264.maxL1ReferenceCount) {
GST_WARNING ("Driver does not support B frames");
goto beach;
}
diff --git a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c
index 950984f60b..ed2088903d 100644
--- a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c
+++ b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c
@@ -388,7 +388,6 @@ encode_frame (GstVulkanEncoder * enc, GstVulkanH265EncodeFrame * frame,
GstVulkanH265EncodeFrame ** list1, gint list1_num, gint vps_id, gint sps_id,
gint pps_id)
{
- GstVulkanVideoCapabilities enc_caps;
int i, ref_pics_num = 0;
GstVulkanEncoderPicture *ref_pics[16] = { NULL, };
gint16 delta_poc_s0_minus1 = 0, delta_poc_s1_minus1 = 0;
@@ -400,8 +399,6 @@ encode_frame (GstVulkanEncoder * enc, GstVulkanH265EncodeFrame * frame,
GST_DEBUG ("Encoding frame num: %d", frame_num);
- fail_unless (gst_vulkan_encoder_caps (enc, &enc_caps));
-
frame->slice_wt = (StdVideoEncodeH265WeightTable) {
/* *INDENT-OFF* */
.flags = (StdVideoEncodeH265WeightTableFlags) {
@@ -806,52 +803,45 @@ setup_h265_encoder (uint32_t width, uint32_t height, gint vps_id,
fail_unless (gst_vulkan_encoder_caps (enc, &enc_caps));
- if (enc_caps.codec.h265enc.
- ctbSizes & VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR) {
+ if (enc_caps.encoder.codec.h265.ctbSizes
+ & VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR)
max_ctb_size = 64;
- } else if (enc_caps.codec.h265enc.
- ctbSizes & VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR) {
+ else if (enc_caps.encoder.codec.h265.ctbSizes
+ & VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR)
max_ctb_size = 32;
- }
-
- if (enc_caps.codec.h265enc.
- ctbSizes & VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR) {
+ else if (enc_caps.encoder.codec.h265.ctbSizes
+ & VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR)
min_ctb_size = 16;
- } else if (enc_caps.codec.h265enc.
- ctbSizes & VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR) {
- min_ctb_size = 32;
- }
- if (enc_caps.codec.h265enc.transformBlockSizes &
+ if (enc_caps.encoder.codec.h265.transformBlockSizes &
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR)
min_tb_size = 4;
- else if (enc_caps.codec.h265enc.transformBlockSizes &
+ else if (enc_caps.encoder.codec.h265.transformBlockSizes &
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR)
min_tb_size = 8;
- else if (enc_caps.codec.h265enc.transformBlockSizes &
+ else if (enc_caps.encoder.codec.h265.transformBlockSizes &
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR)
min_tb_size = 16;
- else if (enc_caps.codec.h265enc.transformBlockSizes &
+ else if (enc_caps.encoder.codec.h265.transformBlockSizes &
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR)
min_tb_size = 32;
- if (enc_caps.codec.h265enc.transformBlockSizes &
- VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR)
+ if (enc_caps.encoder.codec.h265.transformBlockSizes
+ & VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR)
max_tb_size = 32;
- else if (enc_caps.codec.h265enc.transformBlockSizes &
- VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR)
+ else if (enc_caps.encoder.codec.h265.transformBlockSizes
+ & VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR)
max_tb_size = 16;
- else if (enc_caps.codec.h265enc.transformBlockSizes &
- VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR)
+ else if (enc_caps.encoder.codec.h265.transformBlockSizes
+ & VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR)
max_tb_size = 8;
- else if (enc_caps.codec.h265enc.transformBlockSizes &
- VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR)
+ else if (enc_caps.encoder.codec.h265.transformBlockSizes
+ & VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR)
max_tb_size = 4;
max_transform_hierarchy =
gst_util_ceil_log2 (max_ctb_size) - gst_util_ceil_log2 (min_tb_size);
-
h265_std_ptl.general_profile_idc = profile_idc;
h265_std_vps.vps_video_parameter_set_id = vps_id;
@@ -878,14 +868,16 @@ setup_h265_encoder (uint32_t width, uint32_t height, gint vps_id,
h265_std_sps.conf_win_bottom_offset = 0;
h265_std_pps.flags.transform_skip_enabled_flag =
- enc_caps.codec.h265enc.stdSyntaxFlags &
- VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR ? 1 : 0;
+ enc_caps.encoder.codec.h265.stdSyntaxFlags
+ & VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR
+ ? 1 : 0;
h265_std_pps.flags.weighted_pred_flag =
- enc_caps.codec.h265enc.stdSyntaxFlags &
- VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR ? 1 : 0;
+ enc_caps.encoder.codec.h265.stdSyntaxFlags
+ & VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR ? 1 : 0;
h265_std_pps.flags.entropy_coding_sync_enabled_flag =
- (enc_caps.codec.h265enc.maxTiles.width > 1
- || enc_caps.codec.h265enc.maxTiles.height > 1) ? 1 : 0;
+ (enc_caps.encoder.codec.h265.maxTiles.width > 1
+ || enc_caps.encoder.codec.h265.maxTiles.height > 1)
+ ? 1 : 0;
h265_std_pps.sps_video_parameter_set_id = vps_id;
h265_std_pps.pps_seq_parameter_set_id = sps_id;
h265_std_pps.pps_pic_parameter_set_id = pps_id;
@@ -1075,7 +1067,7 @@ GST_START_TEST (test_encoder_h265_i_p_b)
fail_unless (gst_vulkan_encoder_caps (enc, &enc_caps));
- if (!enc_caps.codec.h265enc.maxL1ReferenceCount) {
+ if (!enc_caps.encoder.codec.h265.maxL1ReferenceCount) {
GST_WARNING ("Driver does not support B frames");
goto beach;
}