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: 5646849b59
("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>
This commit is contained in:
parent
046f83e8df
commit
46340ced12
3 changed files with 6 additions and 6 deletions
|
@ -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_;
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue