ngx-rtmp配置的内存模型
2017-02-20 18:11:04 0 举报
登录查看完整内容
nginx-rtmp
作者其他创作
大纲/内容
...
rtmp{}配置块下的所有server{}块解析后的内存结构都存储在了rtmp{}配置块下解析rtmp core module(第0个)的ctx结构ngx_rtmp_core_main_conf_t的servers字段中了。
所有ngx的core module的配置ctx
main_conf
server 0
srv_conf
app n
applications
n
app_conf
ctx
****conf_ctx
0
app 0
app 0 ctx结构
ngx_cycle_t
server n
server{}配置块下的ctx
ngx的core module存储配置的ctx在ngx_cycle_t的conf_ctx之中,conf_ctx本身是一个指针,它里面存着各个ngx的core module的ctx指针,而各ngx的core module的ctx的结构里一般都有几个保存着各个层次,各个子module配置的指针数组,所以conf_ctx就成了一个四级指针。
m
server{}配置块下的所有application{}块解析后的内存结构都存储在了server{}配置块下解析rtmp core module(第0个)的ctx结构ngx_rtmp_core_srv_conf_t的applications字段中了。
application{}块下create_main_conf得到的各个rtmp模块的app ctx指针。这些app ctx指针的第0个是rtmp系列模块的core app module,是这个app配置块下的根。
ngx_rtmp_core_main_conf_t
指向rtmp{}配置块下的main_conf
ngx_rtmp_core_srv_conf_t
解析application{}配置块时生成的ngx_rtmp_core_app_conf_t结构。其至少包含了application{}自身一个实例。当配置了其他指令时(比如录制),还会包含一个空的无名的ngx_rtmp_core_app_conf_t,并没起什么作用。因为就拿录制来说,其ctx ngx_rtmp_record_app_conf_t有一个数组存储当前application{}配置块下有几个录制实例,而application{}块下自身的那个application的ctx的idx为录制ctx的ctx的保存录制实例的数组定会被插入保存application{}块下的所有录制实例。
rtmp{}块下create_main_conf得到的各个rtmp模块的main ctx指针。这些main ctx指针的第0个是rtmp系列模块的core module,是这个系列的ctx的根。
server 0 ctx结构
servers
ngx_rtmp_core_app_conf_t
rtmp配置块下的ctx,类型ngx_rtmp_conf_ctx_t
收藏
0 条评论
回复 删除
下一页