ofTheo / videoInput

A video capture library for windows.
http://muonics.net/school/spring05/videoInput/
357 stars 175 forks source link

Program freezes at videoInput.setupDevice() #59

Open ShikyC opened 7 months ago

ShikyC commented 7 months ago

I successfully built videoInput within my dll library but when the program runs, it freezes at setting up the camera:

VIDEOINPUT SPY MODE!

SETUP: Looking For Capture Devices
SETUP: 0) HBVCAM FHD CAMERA
SETUP: 1 Device(s) found

SETUP: Setting up device 0

No more outputs from the console since then. I found that it's this line that hangs up:

hr = CoCreateInstance(CLSID_FilterGraph, 0, CLSCTX_INPROC_SERVER,IID_IGraphBuilder, (void**)&VD->pGraph);

Any clues why this happens? I'm using Windows 11.

Code to reproduce the issue:

    videoInput VI;
    int numDevices = VI.listDevices();
    if (numDevices > 0) {
        int vidDevice = 0;
        VI.setupDevice(vidDevice);    // Freezes here
        int width = VI.getWidth(vidDevice);
        int height = VI.getHeight(vidDevice);
        int size = VI.getSize(vidDevice);
    } else {
        printf("No camera devices available.\n");
    }
ofTheo commented 7 months ago

Hmm - It might be a privilege issue with VI running inside a DLL.

See this thread: https://stackoverflow.com/questions/1304847/is-it-possible-to-lower-the-privilege-level-when-calling-cocreateinstance-on-vis?rq=3