SRS代码目录

SRS源码结构与调试指南

代码目录:

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值