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 c9d163a7ca..793b60c156 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 @@ -376,6 +376,24 @@ gst_vulkan_encoder_picture_clear (GstVulkanEncoderPicture * pic, pic->dpb_view = NULL; } +/** + * gst_vulkan_encoder_is_started: + * @self: a #GstVulkanEncoder + * + * Returns: whether gst_vulkan_encoder_start() was called correctly previously. + */ +gboolean +gst_vulkan_encoder_is_started (GstVulkanEncoder * self) +{ + GstVulkanEncoderPrivate *priv; + + g_return_val_if_fail (GST_IS_VULKAN_ENCODER (self), FALSE); + + priv = gst_vulkan_encoder_get_instance_private (self); + return priv->started; +} + + /** * gst_vulkan_encoder_caps: * @self: a #GstVulkanEncoder diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.h b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.h index 5147b53b3a..b29d73b1cd 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.h +++ b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.h @@ -204,6 +204,8 @@ GST_VULKAN_API gboolean gst_vulkan_encoder_caps (GstVulkanEncoder * self, GstVulkanVideoCapabilities * caps); GST_VULKAN_API +gboolean gst_vulkan_encoder_is_started (GstVulkanEncoder * self); +GST_VULKAN_API GstCaps * gst_vulkan_encoder_profile_caps (GstVulkanEncoder * self); GST_VULKAN_API gint32 gst_vulkan_encoder_quality_level (GstVulkanEncoder * self); diff --git a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c index 72b2385d80..6786c01890 100644 --- a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c +++ b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c @@ -702,6 +702,8 @@ setup_h264_encoder (guint32 width, gint32 height, gint sps_id, gint pps_id) fail_unless (gst_vulkan_encoder_quality_level (enc) > -1); + fail_unless (gst_vulkan_encoder_is_started (enc)); + mbAlignedWidth = GST_ROUND_UP_16 (width); mbAlignedHeight = GST_ROUND_UP_16 (height); diff --git a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c index 02f856dfd5..b3a377d5f3 100644 --- a/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c +++ b/subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c @@ -799,6 +799,8 @@ setup_h265_encoder (uint32_t width, uint32_t height, gint vps_id, fail_unless (gst_vulkan_encoder_quality_level (enc) > -1); + fail_unless (gst_vulkan_encoder_is_started (enc)); + fail_unless (gst_vulkan_encoder_caps (enc, &enc_caps)); if (enc_caps.encoder.codec.h265.ctbSizes