采集模块:
在win-dshow中,该模块会生成win-dshow.dll;
该目录主要是使用dshow来做音视频采集;
了解该处的代码,可以了解如何实现音视频分离;
有视频采集的代码,现在看dshowcapture.cpp中的代码,DShow中主要
SetupVideoCapture<====SetVideoConfig<=====UpdateVideoConfig<=====DShowInput::Activate<=====RegisterDShowSource
<======obs_module_load
obs-module.h中定义了obs插件模块的公共接口函数:
obs_module_load
obs_module_unload
obs_module_set_locale
obs_module_free_locale
obs_module_set_pointer
obs_current_module
obs_module_ver
obs.h中定义了obs启动的主要入口代码(最好是从这个文件开始慢慢看)
obs_startup
obs_shutdown
obs_initialized
obs_get_version
obs_reset_video
obs_reset_audio
obs_open_module
在OBSInit中,先是做了一堆的初始化工作,然后主要调用obs_load_all_modules加载所有的obs模块,对每个模块使用obs_module来描述其dll文件路径,数据文件路径,模块名称,打开的HANDLE句柄,通过调用load_module_exports dlsym记录obs_module_load,obs_module_set_pointer,obs_module_ver,obs_module_unload等模块接口函数;处理好后,将该模块挂载到obs->first_module队列中。同时,调用mod->set_pointer(*module)将模块内部变量回指到该obs_module中,方便查找吧。