The function set by pipe_client_set_camera_helper_cb is not called.
-
Hi.
I have voxl2 mini and USB camera.
system-image: 1.7.1-M0104-14.1a-perf-nightly-20231025
kernel: #1 SMP PREEMPT Fri May 19 22:53:15 UTC 2023 4.19.125hw version: M0104
voxl-suite: 1.1.2
I am connecting a USB camera to voxl2 mini and receiving video using voxl-streamer.
I disconnected the USB camera from the voxl mini while video was being received.
For testing purposes, I disconnected the USB camera from the voxl mini while the video was being received.After that, I can no longer receive video using voxl-streamer.
The reason is that the function set in pipe_client_set_camera_helper_cb is no longer called.
How can I make the function set in pipe_client_set_camera_helper_cb be called again?
or
Is it possible to receive a USB camera disconnected event from voxl-streamer?please refer to this
When you run the systemctl restart voxl-uvc-server command, the function is called normally and the video is received. -
@kclee2001 , if I understand correctly..
- you are connecting a USB camera to voxl2-mini and using voxl-uvc-server to read the camera images and send them out via MPA
- voxl-streamer is used to receive the raw frames from voxl-uvc-server, then compress and stream the video to another computer via rtsp protocol
- for testing purposes, you are disconnecting the USB camera from voxl2-mini
- voxl-streamer keeps running, but it has no input frames to encode and send out, so it does nothing
- if you plug the USB camera back into voxl2-mini and restart voxl-uvc-server, the video stream resumes.
It sounds to me that the system is operating properly, but it just does not recover from unplugging the camera.
If you would like the voxl-uvc-server to recover from unplugging the camera, then you can do the following:
- run voxl-uvc-server in foreground and see what happens when you unplug the USB camera (does it print any error messages)
- modify voxl-uvc-sever to exit if it detects camera disconnection : https://gitlab.com/voxl-public/voxl-sdk/services/voxl-uvc-server
- check the systemd service for voxl-uvc-server to make sure it is restarted automatically if it exits
- one thing to double check: if the voxl-uvc-server restarts before you plug the USB camera back in, will the voxl-uvc-server automatically detect it, or the camera needs to be plugged in before the voxl-uvc-server is restarted. (the reason why i am asking is because i don't have a usb camera to test this).
Alex