summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVedant Paranjape <vedantparanjape160201@gmail.com>2021-09-21 23:09:54 +0530
committerPaul Elder <paul.elder@ideasonboard.com>2021-09-23 16:03:08 +0900
commitfa9a9d7f6b6452bf8d0fdd5de03512547b84204a (patch)
tree32ca1f1d2453ee42ac22760987c7ef927ae7a6f3
parentca9ea1f9ce37c70db885d14a1698063da04e0169 (diff)
test: gstreamer: Simplify single stream test using functions from GstUtils
Simplify memory handling and complexity of the test by using gst_parse_bin_from_description_full [1]. [1]: https://gstreamer.freedesktop.org/documentation/gstreamer/gstutils.html?gi-language=c#gst_parse_bin_from_description_full Signed-off-by: Vedant Paranjape <vedantparanjape160201@gmail.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
-rw-r--r--test/gstreamer/gstreamer_single_stream_test.cpp32
1 files changed, 14 insertions, 18 deletions
diff --git a/test/gstreamer/gstreamer_single_stream_test.cpp b/test/gstreamer/gstreamer_single_stream_test.cpp
index 2b561d6b..4a12e795 100644
--- a/test/gstreamer/gstreamer_single_stream_test.cpp
+++ b/test/gstreamer/gstreamer_single_stream_test.cpp
@@ -33,20 +33,18 @@ protected:
if (status_ != TestPass)
return status_;
- g_autoptr(GstElement) convert0 = gst_element_factory_make("videoconvert", "convert0");
- g_autoptr(GstElement) sink0 = gst_element_factory_make("fakesink", "sink0");
- g_object_ref_sink(convert0);
- g_object_ref_sink(sink0);
-
- if (!convert0 || !sink0) {
- g_printerr("Not all elements could be created. %p.%p\n",
- convert0, sink0);
-
+ const gchar *streamDescription = "videoconvert ! fakesink";
+ g_autoptr(GError) error0 = NULL;
+ stream0_ = gst_parse_bin_from_description_full(streamDescription, TRUE,
+ NULL,
+ GST_PARSE_FLAG_FATAL_ERRORS,
+ &error0);
+
+ if (!stream0_) {
+ g_printerr("Bin could not be created (%s)\n", error0->message);
return TestFail;
}
-
- convert0_ = reinterpret_cast<GstElement *>(g_steal_pointer(&convert0));
- sink0_ = reinterpret_cast<GstElement *>(g_steal_pointer(&sink0));
+ g_object_ref_sink(stream0_);
if (createPipeline() != TestPass)
return TestFail;
@@ -57,8 +55,8 @@ protected:
int run() override
{
/* Build the pipeline */
- gst_bin_add_many(GST_BIN(pipeline_), libcameraSrc_, convert0_, sink0_, NULL);
- if (gst_element_link_many(libcameraSrc_, convert0_, sink0_, NULL) != TRUE) {
+ gst_bin_add_many(GST_BIN(pipeline_), libcameraSrc_, stream0_, NULL);
+ if (gst_element_link(libcameraSrc_, stream0_) != TRUE) {
g_printerr("Elements could not be linked.\n");
return TestFail;
}
@@ -74,13 +72,11 @@ protected:
void cleanup() override
{
- g_clear_object(&convert0_);
- g_clear_object(&sink0_);
+ g_clear_object(&stream0_);
}
private:
- GstElement *convert0_;
- GstElement *sink0_;
+ GstElement *stream0_;
};
TEST_REGISTER(GstreamerSingleStreamTest)