Zoom and other meeting apps crash when switching cams
Summary
Zoom and other meeting apps crash when switching between akvcam(s) and other cams under windows.
Current Behavior
Describe the problem the best as you can, don't omit information.
Expected Behavior
should not crash client app when switching cams
Steps to Reproduce
- with settings
[Cameras]
cameras/size = 1
cameras/1/description = testcam
cameras/1/formats = 1
cameras/1/id = akvcamid1
[Formats]
formats/size = 1
formats/1/format = YUY2
formats/1/width = 1920
formats/1/height = 1080
formats/1/fps = 30
and akvcammanager load settings.ini, it's adding the vcam correctly
- using gstreamer or ffmpeg to push stream to akvcam:
ffmpeg -hide_banner -loglevel panic -rtsp_transport tcp -i "rtsp://10.10.0.1/1" -pix_fmt yuyv422 -f rawvideo - | AkVCamManager stream akvcamid1 YUY2 1920 1080orgst-launch-1.0 --quiet rtspsrc location="rtsp://10.10.0.1/1" protocols=tcp ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! video/x-raw,format=YUY2 ! fdsink | AkVCamManager stream akvcamid1 YUY2 1920 1080 - launch Zoom and go to settings - video, choose testcam and the video shows normally
- switch to other cams and switch back to testcam several times
- Zoom crashes
- tested in other meetings apps like ms teams, obs, tencent wemeet, classin and on different machines, crash happens sooner or later when stop/start reading from the vcam
Your Environment
- akvirtualcamera information: 9.1.3 x64
- Operating System information: Window 10 22H2 19045.5247
extra info
sometimes it reports the crash part is ntdll.dll, sometimes it's AkVirtualCamera.dll
Because when the camera was to be turned off, the filter had already been released and was still streaming, and the frameReady method was called, it crashed In IEJPins * AkVCam: BaseFilterPrivate::pinsForDevice(const std::string &deviceId) And AkVCam: Add a resource lock to BaseFilter Private::~BaseFilter Private ()
@caoailin Will check thank you very much!