obs-virtual-cam
obs-virtual-cam copied to clipboard
Crashes in Chrome caused by obs-virtual-cam
We are hitting a significant number of Crashes in Chrome that are 100% correlated with obs-virtualcam-model64.dll. The crash call stack looks like this:
| 0x00007ffd4de4c1b2 | (chrome.dll -video_capture_device_client.cc:616) | media::VideoCaptureDeviceClient::OnIncomingCapturedBufferExt(media::VideoCaptureDevice::Client::Buffer,media::VideoCaptureFormat const &,gfx::ColorSpace const &,base::TimeTicks,base::TimeDelta,gfx::Rect,media::VideoFrameMetadata const &) | |
|---|---|---|---|
| 0x00007ffd4de4af7d | (chrome.dll -video_capture_device_client.cc:390) | ||
| 0x00007ffd4ea291bc | (chrome.dll -video_capture_device_win.cc:871) | ||
| 0x00007ffd4bdd917d | (chrome.dll -sink_input_pin_win.cc:235) | ||
| 0x00007ffd3d6886df | (obs-virtualcam-module64.dll + 0x000086df) | ||
| 0x00007ffd3d68a120 | (obs-virtualcam-module64.dll + 0x0000a120) | ||
| 0x00007ffd3d68a077 | (obs-virtualcam-module64.dll + 0x0000a077) | ||
| 0x00007ffd3d68a21e | (obs-virtualcam-module64.dll + 0x0000a21e) | ||
| 0x00007ffd3d689830 | (obs-virtualcam-module64.dll + 0x00009830) | ||
| 0x00007ffd3d6f575f | (obs-virtualcam-module64.dll + 0x0007575f) | ||
| 0x00007ffda69e7c23 | (KERNEL32.DLL + 0x00017c23) | ||
| 0x00007ffda898d4d0 | (ntdll.dll + 0x0006d4d0) |
The actual crash is a read from location 0.
Note that the call stack is speculative once it gets into obs-virtualcam-module64.dll since 64-bit stack walking relies on metadata from the DLL or PDB. I tried to find obs-virtualcam-module64.dll in the latest release but it is not there, and I'd really need the symbols to be able to file an entirely accurate bug report.
Roughly 67% of the crashes are happening with the 26.0.0.0 version of the DLL, and 15% of the crashes are with the 26.1.0.0 version. That is, it appears that the bug has not been fixed in 26.1.0.0. The call stack above is from the 26.1.0.0 version, Timestamp: Mon Dec 14 09:57:59 2020 (5FD7C3C7).
If you can share a DLL and PDB for that version (or for 26.0.0.0) then I can give a more complete call stack. From our side, the actual crashing line is this one:
https://source.chromium.org/chromium/chromium/src/+/master:media/capture/video/video_capture_device_client.cc;l=616?q=VideoCaptureDeviceClient::OnIncomingCapturedBufferExt
From analysis of the source, machine code, and debug information it appears that receiver_ is NULL, which suggests that the Receive method was called incorrectly.
It is possible that this is a bug in Chrome, but since the crash is 100% correlated with obs-virtual-cam we are assuming that it is not.
Thoughts?
For our reference, this correlates to crbug.com/1137308. Unfortunately that bug has restricted access so you won't be able to see it although we could probably CC a team member to give them access to it.