Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2016-09-23 15:00:50 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b748fac23a71dbbbde594d3128a6c47d07a82cfb
b748fac2
1 parent
2a015404
support asprocess for oryx. 2.0.218
隐藏空白字符变更
内嵌
并排对比
正在显示
7 个修改的文件
包含
53 行增加
和
3 行删除
README.md
trunk/conf/full.conf
trunk/src/app/srs_app_config.cpp
trunk/src/app/srs_app_config.hpp
trunk/src/app/srs_app_server.cpp
trunk/src/app/srs_app_server.hpp
trunk/src/core/srs_core.hpp
README.md
查看文件 @
b748fac
...
...
@@ -343,6 +343,7 @@ Remark:
## History
*
v2.0, 2016-09-23, support asprocess for oryx. 2.0.218
*
v2.0, 2016-09-23, support change work_dir for oryx.
*
v2.0, 2016-09-15, fix #640, typo for rtmp type. 2.0.217
*
v2.0, 2016-09-12, fix fast stream error bug. 2.0.216
...
...
trunk/conf/full.conf
查看文件 @
b748fac
...
...
@@ -55,6 +55,13 @@ utc_time off;
# @reamrk do not support reload.
# default: ./
work_dir
./;
# whether quit when parent process changed,
# used for supervisor mode(not daemon), srs should always quit when
# supervisor process exited.
# @remark conflict with daemon, error when both daemon and asprocess are on.
# @reamrk do not support reload.
# default: off
asprocess
off
;
#############################################################################################
# heartbeat/stats sections
...
...
trunk/src/app/srs_app_config.cpp
查看文件 @
b748fac
...
...
@@ -1567,7 +1567,7 @@ int SrsConfig::check_config()
&&
n
!=
"max_connections"
&&
n
!=
"daemon"
&&
n
!=
"heartbeat"
&&
n
!=
"http_api"
&&
n
!=
"stats"
&&
n
!=
"vhost"
&&
n
!=
"pithy_print_ms"
&&
n
!=
"http_stream"
&&
n
!=
"http_server"
&&
n
!=
"stream_caster"
&&
n
!=
"utc_time"
&&
n
!=
"work_dir"
&&
n
!=
"utc_time"
&&
n
!=
"work_dir"
&&
n
!=
"asprocess"
)
{
ret
=
ERROR_SYSTEM_CONFIG_INVALID
;
srs_error
(
"unsupported directive %s, ret=%d"
,
n
.
c_str
(),
ret
);
...
...
@@ -2055,6 +2055,13 @@ int SrsConfig::check_config()
// TODO: FIXME: required http server when hls storage is ram or both.
}
// asprocess conflict with daemon
if
(
get_asprocess
()
&&
get_deamon
())
{
ret
=
ERROR_SYSTEM_CONFIG_INVALID
;
srs_error
(
"daemon conflict with asprocess, ret=%d"
,
ret
);
return
ret
;
}
return
ret
;
}
...
...
@@ -2183,6 +2190,18 @@ string SrsConfig::get_work_dir() {
return
conf
->
arg0
();
}
bool
SrsConfig
::
get_asprocess
()
{
static
bool
DEFAULT
=
false
;
SrsConfDirective
*
conf
=
root
->
get
(
"asprocess"
);
if
(
!
conf
||
conf
->
arg0
().
empty
())
{
return
DEFAULT
;
}
return
SRS_CONF_PERFER_FALSE
(
conf
->
arg0
());
}
vector
<
SrsConfDirective
*>
SrsConfig
::
get_stream_casters
()
{
srs_assert
(
root
);
...
...
trunk/src/app/srs_app_config.hpp
查看文件 @
b748fac
...
...
@@ -379,6 +379,8 @@ public:
* ignore if empty string.
*/
virtual
std
::
string
get_work_dir
();
// whether use asprocess mode.
virtual
bool
get_asprocess
();
// stream_caster section
public:
/**
...
...
trunk/src/app/srs_app_server.cpp
查看文件 @
b748fac
...
...
@@ -488,6 +488,7 @@ SrsServer::SrsServer()
signal_manager
=
NULL
;
handler
=
NULL
;
ppid
=
-
1
;
// donot new object in constructor,
// for some global instance is not ready now,
...
...
@@ -635,7 +636,16 @@ int SrsServer::initialize_st()
// set current log id.
_srs_context
->
generate_id
();
srs_trace
(
"server main cid=%d"
,
_srs_context
->
get_id
());
// check asprocess.
bool
asprocess
=
_srs_config
->
get_asprocess
();
if
(
ppid
==
1
)
{
ret
=
ERROR_SYSTEM_ASSERT_FAILED
;
srs_error
(
"for asprocess, ppid should never be init(1), ret=%d"
,
ret
);
return
ret
;
}
srs_trace
(
"server main cid=%d, pid=%d, ppid=%d, asprocess=%d"
,
_srs_context
->
get_id
(),
::
getpid
(),
ppid
,
asprocess
);
return
ret
;
}
...
...
@@ -945,6 +955,9 @@ int SrsServer::do_cycle()
max
=
srs_max
(
max
,
SRS_SYS_NETWORK_RTMP_SERVER_RESOLUTION_TIMES
);
#endif
// for asprocess.
bool
asprocess
=
_srs_config
->
get_asprocess
();
// the deamon thread, update the time cache
while
(
true
)
{
if
(
handler
&&
(
ret
=
handler
->
on_cycle
((
int
)
conns
.
size
()))
!=
ERROR_SUCCESS
){
...
...
@@ -962,6 +975,12 @@ int SrsServer::do_cycle()
for
(
int
i
=
0
;
i
<
temp_max
;
i
++
)
{
st_usleep
(
SRS_SYS_CYCLE_INTERVAL
*
1000
);
// asprocess check.
if
(
asprocess
&&
::
getppid
()
!=
ppid
)
{
srs_warn
(
"asprocess ppid changed from %d to %d"
,
ppid
,
::
getppid
());
return
ret
;
}
// gracefully quit for SIGINT or SIGTERM.
if
(
signal_gracefully_quit
)
{
srs_trace
(
"cleanup for gracefully terminate."
);
...
...
trunk/src/app/srs_app_server.hpp
查看文件 @
b748fac
...
...
@@ -277,6 +277,8 @@ private:
bool
signal_reload
;
bool
signal_gmc_stop
;
bool
signal_gracefully_quit
;
// parent pid for asprocess.
int
ppid
;
public
:
SrsServer
();
virtual
~
SrsServer
();
...
...
trunk/src/core/srs_core.hpp
查看文件 @
b748fac
...
...
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// current release version
#define VERSION_MAJOR 2
#define VERSION_MINOR 0
#define VERSION_REVISION 21
7
#define VERSION_REVISION 21
8
// generated by configure, only macros.
#include <srs_auto_headers.hpp>
...
...
请
注册
或
登录
后发表评论