我知道这可能是一般性的,请多多包涵!
我们有一个使用网络摄像头的程序,并根据摄像头看到的内容运行某些功能。该程序在 MacOS 和 Linux 上运行良好,它可以编译并且确实可以在 Windows 上运行,但是其中一些功能(包括逐像素迭代的功能,640x480)将 FPS 降至 1 或更低。偶尔放下它冻结几秒钟。
就像我说的,我知道这很笼统......我只是(绝望地)希望其他人就可能的解释提供意见?这些相同的功能在其他平台上也能正常工作。我很好奇相机是否可能在它自己的线程中运行,从而陷入困境?也许我们只是没有在正确的地方寻找优化?在将代码移植到 Windows 时,是否有关于优化什么的资源?
非常感谢,非常感谢任何输入!
<<< 编辑 >>>
至于视频源代码,我使用的是 ewclib 和
const char * m_buffer;
EWC_Open(MEDIASUBTYPE_RGB24, 640, 480, FPS, true);
m_buffer = new unsigned char[EWC_GetBufferSize(0)];
EWC_GetImage(0, m_buffer);