vkencoder-private: add gst_vulkan_encoder_is_started()
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Tue, 20 Aug 2024 18:43:42 +0000 (20:43 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 4 Dec 2024 02:17:45 +0000 (02:17 +0000)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8007>

subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.c
subprojects/gst-plugins-bad/gst-libs/gst/vulkan/gstvkencoder-private.h
subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh264.c
subprojects/gst-plugins-bad/tests/check/libs/vkvideoencodeh265.c

index c9d163a7ca1f541a566d16e14e1947c30a327a7b..793b60c156b106f37d84b8bd456329d37756a0a7 100644 (file)
@@ -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
index 5147b53b3a98f42127e84f70492d1808eb20c357..b29d73b1cd6bda4348281d85e67068b6f7d410eb 100644 (file)
@@ -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);
index 72b2385d804663f2d3a4f54e1012e841c9695459..6786c0189063a98030ad3df324bcec3156a860b9 100644 (file)
@@ -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);
 
index 02f856dfd54428d58fbfe1c0e3670a09ed1d0d26..b3a377d5f3e4a89a5f2bfe3e55d3861c96846bce 100644 (file)
@@ -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