OBS 插件开发所需要的数据结构。
插件的四个入口:
plugins_sources
plugins_outputs
plugins_encoders
plugins_services
OBS软件的三个主线程函数:
obs_graphics_thread_ (obs-video.c)
video_thread_ (video-io.c)
audio_thread_ (audio-io.c)
输出通道:
obs_set_output_source()
displaying_sources
OBS 图形线程函数:
obs_graphics_thread_ (obs-video.c)
MAX_CHANNELS_-1 频道参数为1
视频处理程序
obs_core_video::video
和帧数有关的
MAX_CACHE_SIZE_ 视频缓冲池
video output handler 视频函数句柄
就是视频播放卡顿问题。
obs-encoder.c OBS 视频解码
音频管道:
audio_thread (audio-io.c)
AUDIO_OUTPUT_FRAMES_ 音频缓冲池
audio_callback (obs-audio.c)音频采样回放
obs_source_output_audio_ 音频输出函数
obs_source::audio_input_buf 音频缓冲池函数
obs_source::audio_input_buf 放入音频缓冲池
obs_source::audio_output_buf 由此函数缓冲池输出
函数源码
_obs_source_info::audio_render
初始化OBS:
obs_startup();obs_reset_video();obs_reset_audio()
初始化必须调用的三个函数
个人使用函数
obs_init_module() 初始化OBS模块
obs_open_module() 打开OBS模块
模块相关
obs_add_module_path();obs_load_all_modules(); 自动装载OBS模块
obs_post_load_modules() OBS 插件装载模块
obs_startup() 设置配置开始模块
bnum_allocs() 清空模块链接空间
obs_shutdown() 卸载所有模块