代码目录:
src/目录下核心代码:

- core:核心功能模块,包括日志、配置、错误处理等;
- protocol:实现RTMP、HTTP-FLV、HLS等协议的模块;
- app:应用层的实现,包括流的发布、播放、转码等功能;
- kernel:底层实现,包括网络I/O、多线程处理等;
- main:主层序入口
SRS启动:
main:
// src/main/srs_main_server.cpp
main()
{
do_main();
}
do_main()
{
// 初始化,new创建各种server和实例
srs_global_initialize();
// 启动线程池?
SrsThreadPool::setup_thread_locals();
// 加载conf配置
_srs_config->parse_options(argc, argv);
// 运行主程序
run_directly_or_daemon();
}
srs_global_initialize: 初始化各种server
// src/app/srs_app_threads.cpp
srs_global_initialize()
{
...
// 全局变量 _srs_hybrid:
// SrsHybridServer* _srs_hybrid = NULL;
_srs_hybrid = new SrsHybridServer();
...
}
run_directly_or_daemon: 开始运行
run_directly_or_daemon()
{
// 我们没有配置为daemon
...
int pid = fork();
if (pid > 0) {
// 父进程直接退出
exit(0);
}
// 继续第二次fork()
pid = fork();
if (pid > 0) {
// 父进程退出
exit(0)
SRS源码结构与调试指南

最低0.47元/天 解锁文章
1908

被折叠的 条评论
为什么被折叠?



