Coder Social home page Coder Social logo

Comments (9)

leadedge avatar leadedge commented on June 8, 2024

This is most likely a bug in SpoutCam. But finding it is virtually impossible without a repeatable fault to trace. Is xxx.exe your own program?

from spout2.

Klusxy avatar Klusxy commented on June 8, 2024

xxx.exe is can not my own program , like VLC , I build SpoutCam(32bit debug) yesterday , and regist SpoutCam.ax , when I us VLC to show SpoutCam DirectShow , it can cause this error. So I think this error is the SpoutCam bug.

from spout2.

leadedge avatar leadedge commented on June 8, 2024

What happens when you build "Release" ?
Why do you need to rebuild SpoutCam?
Does SpoutCam installed with the Spout installation cause this error?
What version of VLC? I can check it.

from spout2.

Klusxy avatar Klusxy commented on June 8, 2024

1 3question:
if use release version , this error is not appear , because in baseclasses:

#ifdef DEBUG
        if (CBaseObject::ObjectsActive()) {
            DbgSetModuleLevel(LOG_MEMORY, 2);
            TCHAR szInfo[512];
            extern TCHAR m_ModuleName[];     // Cut down module name

            TCHAR FullName[_MAX_PATH];      // Load the full path and module name
            TCHAR *pName;                   // Searches from the end for a backslash

            GetModuleFileName(NULL,FullName,_MAX_PATH);
            pName = _tcsrchr(FullName,'\\');
            if (pName == NULL) {
                pName = FullName;
            } else {
                pName++;
            }

	    DWORD cch = wsprintf(szInfo, TEXT("Executable: %s  Pid %x  Tid %x. "),
			    pName, GetCurrentProcessId(), GetCurrentThreadId());

            wsprintf(szInfo+cch, TEXT("Module %s, %d objects left active!"),
                     m_ModuleName, CBaseObject::ObjectsActive());
            DbgAssert(szInfo, TEXT(__FILE__),__LINE__);

	    // If running remotely wait for the Assert to be acknowledged
	    // before dumping out the object register
            DbgDumpObjectRegister();
        }
        DbgTerminate();
#endif

2nd question:I need to rebuild SpoutCam because I need to use SpoutCam DirectShow in 64bit.
VLC version:2.2.5.1 Umbrella.
I think this error is not VLC problem , because I use AMCap(32bit) or GraphStudioNext(64bit) , it also can cause this error.

from spout2.

leadedge avatar leadedge commented on June 8, 2024

OK thanks. When I get some time I will build debug to see if I can reproduce the error.

I have never compiled SpoutCam 64bit so do not know whether the code will support it.

I tried VLC 2.2.5 "Weatherwax" and it crashes when SpoutCam is selected. Version 2.2.6 does not crash but shows a black screen. It seems that the last version that worked with SpoutCam was 2.2.1. http://spout.zeal.co/forums/topic/spoutcam-and-vlc/

Also to get SpoutCam to work you need to specify the audio device as none and set the video size.

Use "SpoutCamSettings.exe" to select the required size. For example, 30fps and 640x480.

Start the demo sender, then start VLC.

In VLC - Media > Open Capture Device
Video device name : SpoutCam
Audio device name: none
Video size: 640x480
Click the PLAY button

SpoutCam code is based on an early capture source filter project by Vivek, available on the TMhare site as "Vcam" - http://tmhare.mvps.org

Many programs do not accept virtual cameras, so SpoutCam has been modified in an attempt to make it more compatible. However, it is still does not not fully emulate a typical webcam.

from spout2.

Klusxy avatar Klusxy commented on June 8, 2024

ok , thanks for you.
This error isn't SpoutCam 64bit cause.The SpoutCam 32bit also cause this error.
And SpoutCam don't support 64bit because

void CVCamStream::rgb2bgr(void* source, void *dest, unsigned int width, unsigned int height, bool bInvert){}

Inline asm only supported for 32bit by Visual Studio.

from spout2.

leadedge avatar leadedge commented on June 8, 2024

Yes I understand that the error is not specific to 64bit.

rgb2bgr would have to be re-written using intrinsics. But the speed is probably not critical and the function could be done using pointers. You could quickly convert from rgb2rgba in SpoutCopy.cpp -

https://github.com/leadedge/Spout2/blob/master/SpoutSDK/Source/SpoutCopy.cpp

from spout2.

Klusxy avatar Klusxy commented on June 8, 2024

ok , thanks for you.

from spout2.

leadedge avatar leadedge commented on June 8, 2024

Let's close this for now then.

from spout2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.