PWLIB版本:1.6.6
OPENH323版本:1.13.5
在WINDOWS平台下,为了保证稳定性,PWLIB库的视频捕捉是采用的是WINDOWS的VFW(VIDEO FOR WINDOWS)API来实现的,而且,默认情况下,库的编译设置是采用停等模式来捕捉视频,为了提高捕捉速度,我们应该采用流模式来进行捕捉,如何进行修改呢?
首先,我们应该把捕捉模式设置为流模式,为此我们要把pwlib/src/ptlib/msos/vfw.cxx文件头的预定义行#define STEP_GRAB_CAPTURE 1修改为#define STEP_GRAB_CAPTURE 0。
其次,在pwlib/src/ptlib/msos/vfw.cxx文件中找到函数BOOL PVideoInputDevice_VideoForWindows::SetFrameRate(unsigned rate)的定义,在parms.fLimitEnabled = FALSE;的后面加入下面一行parms.fYield = TRUE;(按理说,修改成流模式就可以,但有可能是作者的大意,少了一个参数没有设置,为此我们还得多做下面的一步。)
至此,修改完成,重新编译PWLIB库,可以使库的视频捕捉按流模式来进行,但相应的,系统资源占用率会提高,根本的解决之道是采用MS的DX来实现视频捕捉。
OPENH323版本:1.13.5
在WINDOWS平台下,为了保证稳定性,PWLIB库的视频捕捉是采用的是WINDOWS的VFW(VIDEO FOR WINDOWS)API来实现的,而且,默认情况下,库的编译设置是采用停等模式来捕捉视频,为了提高捕捉速度,我们应该采用流模式来进行捕捉,如何进行修改呢?
首先,我们应该把捕捉模式设置为流模式,为此我们要把pwlib/src/ptlib/msos/vfw.cxx文件头的预定义行#define STEP_GRAB_CAPTURE 1修改为#define STEP_GRAB_CAPTURE 0。
其次,在pwlib/src/ptlib/msos/vfw.cxx文件中找到函数BOOL PVideoInputDevice_VideoForWindows::SetFrameRate(unsigned rate)的定义,在parms.fLimitEnabled = FALSE;的后面加入下面一行parms.fYield = TRUE;(按理说,修改成流模式就可以,但有可能是作者的大意,少了一个参数没有设置,为此我们还得多做下面的一步。)
至此,修改完成,重新编译PWLIB库,可以使库的视频捕捉按流模式来进行,但相应的,系统资源占用率会提高,根本的解决之道是采用MS的DX来实现视频捕捉。