aravis
aravis copied to clipboard
aravissrc source doesn't work with gst_parse_launch
Describe the bug When I try to change the state of a pipeline created via gst_parse_launch() that uses aravissrc as the source to GST_STATE_PLAYING, gst_element_set_state() returns status 2 (GST_STATE_CHANGE_ASYNC) and gst_element_get_state(pipeline, NULL, NULL, -1) never returns.
To Reproduce 1- Create a pipeline via gst_parse_launch() that uses aravissrc as the source with name=source; 2- Create the source using gst_element_factory_make("aravissrc", "source"); 2- Set the state of the source to GST_STATE_READY; 3- Change the state of a pipeline to GST_STATE_PLAYING; 4- Call gst_element_get_state(pipeline, NULL, NULL, -1); 5- GStreamer get stuck;
Expected behavior Instead of using appsrc as the source, I tried to use aravissrc, so the filling of the gst buffer could be done automatically. Comparing with the execution of a similar pipeline (and checking its code) via gst-launch-1.0 with GST_DEBUG=aravissrc:6 and verbosity enable, I noticed that the change of state for the pipeline should also change the state for the aravissrc, but apparently the source gets ready for filling the gst buffer.
Camera description:
- Manufacturer: The Imaging Source
- Model: DBK 33UX178.AS
- Interface: USB3
Platform description:
- Aravis version: 0.6.4
- OS: Raspbian Buster
- Hardware: armhf Raspberry Pi 4
Additional context
I noticed that the aravissrc never got initialized when the pipeline state changed to paused or playing, so I tried also to set the state for the source before setting the same state for the pipeline, but the pipeline still got stuck when changing the state.
In this case, the last debug output I get from aravissrc is:
0:00:13.962614347 18643 0x4139030 LOG aravissrc gstaravis.c:261:gst_aravis_set_caps:<source> Start acquisition