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
|
int run() override
|
||||||
{
|
{
|
||||||
g_object_set(libcameraSrc_, "camera-name", cameraName_.c_str(), NULL);
|
|
||||||
|
|
||||||
/* Build the pipeline */
|
/* Build the pipeline */
|
||||||
gst_bin_add_many(GST_BIN(pipeline_), libcameraSrc_,
|
gst_bin_add_many(GST_BIN(pipeline_), libcameraSrc_,
|
||||||
stream0_, stream1_, NULL);
|
stream0_, stream1_, NULL);
|
||||||
|
@ -106,7 +104,6 @@ protected:
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string cameraName_;
|
|
||||||
GstElement *stream0_;
|
GstElement *stream0_;
|
||||||
GstElement *stream1_;
|
GstElement *stream1_;
|
||||||
};
|
};
|
||||||
|
|
|
@ -73,7 +73,7 @@ GstreamerTest::GstreamerTest(unsigned int numStreams)
|
||||||
* Atleast one camera should be available with numStreams streams,
|
* Atleast one camera should be available with numStreams streams,
|
||||||
* otherwise skip the test entirely.
|
* otherwise skip the test entirely.
|
||||||
*/
|
*/
|
||||||
if (!checkMinCameraStreams(numStreams)) {
|
if (!checkMinCameraStreamsAndSetCameraName(numStreams)) {
|
||||||
status_ = TestSkip;
|
status_ = TestSkip;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ GstreamerTest::GstreamerTest(unsigned int numStreams)
|
||||||
status_ = TestPass;
|
status_ = TestPass;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GstreamerTest::checkMinCameraStreams(unsigned int numStreams)
|
bool GstreamerTest::checkMinCameraStreamsAndSetCameraName(unsigned int numStreams)
|
||||||
{
|
{
|
||||||
libcamera::CameraManager cm;
|
libcamera::CameraManager cm;
|
||||||
bool cameraFound = false;
|
bool cameraFound = false;
|
||||||
|
@ -93,6 +93,7 @@ bool GstreamerTest::checkMinCameraStreams(unsigned int numStreams)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
cameraFound = true;
|
cameraFound = true;
|
||||||
|
cameraName_ = camera->id();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,6 +122,7 @@ int GstreamerTest::createPipeline()
|
||||||
return TestFail;
|
return TestFail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_object_set(libcameraSrc_, "camera-name", cameraName_.c_str(), NULL);
|
||||||
g_object_ref_sink(libcameraSrc_);
|
g_object_ref_sink(libcameraSrc_);
|
||||||
|
|
||||||
return TestPass;
|
return TestPass;
|
||||||
|
|
|
@ -24,10 +24,11 @@ protected:
|
||||||
int processEvent();
|
int processEvent();
|
||||||
void printError(GstMessage *msg);
|
void printError(GstMessage *msg);
|
||||||
|
|
||||||
|
std::string cameraName_;
|
||||||
GstElement *pipeline_;
|
GstElement *pipeline_;
|
||||||
GstElement *libcameraSrc_;
|
GstElement *libcameraSrc_;
|
||||||
int status_;
|
int status_;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool checkMinCameraStreams(unsigned int numStreams);
|
bool checkMinCameraStreamsAndSetCameraName(unsigned int numStreams);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue