summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVedant Paranjape <vedantparanjape160201@gmail.com>2022-09-10 12:07:42 +0530
committerUmang Jain <umang.jain@ideasonboard.com>2022-09-12 22:44:54 +0530
commit46340ced12dfb3a050dcccb8f3ea8aca5a0e5987 (patch)
tree5d3757b6ec6ede98763995b5955edf0f505dfbe8
parent046f83e8df1ec0d58bc6ed80f71dc2ce6d8f7c58 (diff)
test: gstreamer: Fix failure of gstreamer_multistream_test
Multistream test failed with the following logs, to run on Raspberry Pi 4 due to a bug introduced in one of the recent patches refactoring the code that fails to set the camera-name property with a valid camera id string. WARN libcamerasrc gstlibcamerasrc.cpp:347:gst_libcamera_src_open:<libcamera> error: Could not find a camera named ''. WARN libcamerasrc gstlibcamerasrc.cpp:347:gst_libcamera_src_open:<libcamera> error: libcamera::CameraMananger::get() returned nullptr This patch assigns the camera->id() to the variable cameraName_ that is later used to set element property "camera-name" needed to call the specific camera which supports multistreams. Move the code to set element property "camera-name" to base class GstreamerTest. Fixes: 5646849b59fe ("test: gstreamer: Check availability of cameras before running") Signed-off-by: Vedant Paranjape <vedantparanjape160201@gmail.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Tested-by: Rishikesh Donadkar <rishikeshdonadkar@gmail.com> Reviewed-by: Rishikesh Donadkar <rishikeshdonadkar@gmail.com> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
-rw-r--r--test/gstreamer/gstreamer_multi_stream_test.cpp3
-rw-r--r--test/gstreamer/gstreamer_test.cpp6
-rw-r--r--test/gstreamer/gstreamer_test.h3
3 files changed, 6 insertions, 6 deletions
diff --git a/test/gstreamer/gstreamer_multi_stream_test.cpp b/test/gstreamer/gstreamer_multi_stream_test.cpp
index b8387c10..cd669308 100644
--- a/test/gstreamer/gstreamer_multi_stream_test.cpp
+++ b/test/gstreamer/gstreamer_multi_stream_test.cpp
@@ -70,8 +70,6 @@ protected:
int run() override
{
- g_object_set(libcameraSrc_, "camera-name", cameraName_.c_str(), NULL);
-
/* Build the pipeline */
gst_bin_add_many(GST_BIN(pipeline_), libcameraSrc_,
stream0_, stream1_, NULL);
@@ -106,7 +104,6 @@ protected:
}
private:
- std::string cameraName_;
GstElement *stream0_;
GstElement *stream1_;
};
diff --git a/test/gstreamer/gstreamer_test.cpp b/test/gstreamer/gstreamer_test.cpp
index 4947b7bb..fe8e8e15 100644
--- a/test/gstreamer/gstreamer_test.cpp
+++ b/test/gstreamer/gstreamer_test.cpp
@@ -73,7 +73,7 @@ GstreamerTest::GstreamerTest(unsigned int numStreams)
* Atleast one camera should be available with numStreams streams,
* otherwise skip the test entirely.
*/
- if (!checkMinCameraStreams(numStreams)) {
+ if (!checkMinCameraStreamsAndSetCameraName(numStreams)) {
status_ = TestSkip;
return;
}
@@ -81,7 +81,7 @@ GstreamerTest::GstreamerTest(unsigned int numStreams)
status_ = TestPass;
}
-bool GstreamerTest::checkMinCameraStreams(unsigned int numStreams)
+bool GstreamerTest::checkMinCameraStreamsAndSetCameraName(unsigned int numStreams)
{
libcamera::CameraManager cm;
bool cameraFound = false;
@@ -93,6 +93,7 @@ bool GstreamerTest::checkMinCameraStreams(unsigned int numStreams)
continue;
cameraFound = true;
+ cameraName_ = camera->id();
break;
}
@@ -121,6 +122,7 @@ int GstreamerTest::createPipeline()
return TestFail;
}
+ g_object_set(libcameraSrc_, "camera-name", cameraName_.c_str(), NULL);
g_object_ref_sink(libcameraSrc_);
return TestPass;
diff --git a/test/gstreamer/gstreamer_test.h b/test/gstreamer/gstreamer_test.h
index 6f277cc5..aa2261e2 100644
--- a/test/gstreamer/gstreamer_test.h
+++ b/test/gstreamer/gstreamer_test.h
@@ -24,10 +24,11 @@ protected:
int processEvent();
void printError(GstMessage *msg);
+ std::string cameraName_;
GstElement *pipeline_;
GstElement *libcameraSrc_;
int status_;
private:
- bool checkMinCameraStreams(unsigned int numStreams);
+ bool checkMinCameraStreamsAndSetCameraName(unsigned int numStreams);
};