diff options
author | Vedant Paranjape <vedantparanjape160201@gmail.com> | 2022-09-10 12:07:42 +0530 |
---|---|---|
committer | Umang Jain <umang.jain@ideasonboard.com> | 2022-09-12 22:44:54 +0530 |
commit | 46340ced12dfb3a050dcccb8f3ea8aca5a0e5987 (patch) | |
tree | 5d3757b6ec6ede98763995b5955edf0f505dfbe8 /test/gstreamer | |
parent | 046f83e8df1ec0d58bc6ed80f71dc2ce6d8f7c58 (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>
Diffstat (limited to 'test/gstreamer')
-rw-r--r-- | test/gstreamer/gstreamer_multi_stream_test.cpp | 3 | ||||
-rw-r--r-- | test/gstreamer/gstreamer_test.cpp | 6 | ||||
-rw-r--r-- | test/gstreamer/gstreamer_test.h | 3 |
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); }; |