Skip to content

Commit 4f3da43

Browse files
mpiatkaMartinPulec
authored andcommitted
capture/dshow: Add workaround for OBS virtual camera
1 parent 8c41477 commit 4f3da43

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/video_capture/DirectShowGrabber.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,6 +1051,15 @@ static int vidcap_dshow_init(struct vidcap_params *params, void **state) {
10511051
res = s->filterGraph->QueryInterface(IID_IMediaControl, (void **) &s->mediaControl);
10521052
HANDLE_ERR("Cannot find media control interface");
10531053

1054+
if(get_friendly_name(s->moniker).find("OBS Virtual") != std::string::npos){
1055+
IMediaFilter *pMediaFilter;
1056+
res = s->filterGraph->QueryInterface(IID_IMediaFilter, (void **) &pMediaFilter);
1057+
HANDLE_ERR("Cannot find media filter interface");
1058+
1059+
log_msg(LOG_LEVEL_WARNING, MOD_NAME "OBS virtual camera detected. Setting sync source to NULL!\n");
1060+
pMediaFilter->SetSyncSource(NULL);
1061+
}
1062+
10541063
FILTER_STATE fs;
10551064
res = s->mediaControl->Run();
10561065
while ((res = s->mediaControl->GetState(500, (OAFilterState*) &fs)) != VFW_S_CANT_CUE && !(res == S_OK && fs == State_Running)) {

0 commit comments

Comments
 (0)