I wrote a video capturing filter graph. The graph looks like SourceFilter ---- > SampleGrabber ---- > NullRenderer. All the devices' virtual camera ( Nikon, Gopro, DroidCam ) is working fine (Rendering all the frames) with this architecture. When I have selected OBS virtual camera I found that, only after a single frame render it is not working. That means SampleGrabber::SampleCB is called for single time. When I set SetSyncSource(NULL) just before the graph Run, then OBS is able to render all the frames. But in that case other Virtual camera is not working. It is also a bad practice to use SetSyncSource(NULL). Why OBS is behaving like this ?