# The function set by pipe_client_set_camera_helper_cb is not called.

Source: https://forum.modalai.com/topic/3573/the-function-set-by-pipe_client_set_camera_helper_cb-is-not-called
Category: FAQs (https://forum.modalai.com/category/4/faqs)
Posted: 2024-06-21 05:59:01 UTC by kclee2001
Replies: 1 · Views: 1718

## kclee2001 · 2024-06-21 05:59:01 UTC

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.125
--------------------------------------------------------------------------------
hw 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.

## Reply by Alex Kushleyev (ModalAI staff) · 2024-06-21 15:55:45 UTC

@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
