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
2014-04-10 10:35:02 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e6d8bc1e5c357f034f6b0dd91efd8ef78fc6f8ba
e6d8bc1e
1 parent
5e504944
ingest reload: support disable vhost
隐藏空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
40 行增加
和
12 行删除
trunk/src/app/srs_app_config.cpp
trunk/src/app/srs_app_ingest.cpp
trunk/src/app/srs_app_ingest.hpp
trunk/src/app/srs_app_config.cpp
查看文件 @
e6d8bc1
...
...
@@ -562,6 +562,7 @@ int SrsConfig::reload()
}
}
srs_trace
(
"reload remove vhost %s success."
,
vhost
.
c_str
());
continue
;
}
// merge config: vhost modified.
...
...
trunk/src/app/srs_app_ingest.cpp
查看文件 @
e6d8bc1
...
...
@@ -273,13 +273,6 @@ int SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective* vhost, S
log_file
+=
"-"
;
log_file
+=
stream
;
log_file
+=
".log"
;
// stream name: vhost/app/stream for print
input_stream_name
=
vhost
->
arg0
();
input_stream_name
+=
"/"
;
input_stream_name
+=
app
;
input_stream_name
+=
"/"
;
input_stream_name
+=
stream
;
// input
std
::
string
input_type
=
_srs_config
->
get_ingest_input_type
(
ingest
);
...
...
@@ -346,12 +339,17 @@ int SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective* vhost, S
void
SrsIngester
::
ingester
()
{
if
((
int
)
ingesters
.
size
()
<=
0
)
{
return
;
}
// reportable
if
(
pithy_print
->
can_print
())
{
// TODO: FIXME: show more info.
srs_trace
(
"-> time=%"
PRId64
", ingesters=%d, input=%s"
,
pithy_print
->
get_age
(),
(
int
)
ingesters
.
size
(),
input_stream_name
.
c_str
());
if
(
!
pithy_print
->
can_print
())
{
return
;
}
// TODO: FIXME: show more info.
srs_trace
(
"-> time=%"
PRId64
", ingesters=%d"
,
pithy_print
->
get_age
(),
(
int
)
ingesters
.
size
());
}
int
SrsIngester
::
on_reload_vhost_added
(
string
vhost
)
...
...
@@ -366,4 +364,33 @@ int SrsIngester::on_reload_vhost_added(string vhost)
return
ret
;
}
int
SrsIngester
::
on_reload_vhost_removed
(
string
vhost
)
{
int
ret
=
ERROR_SUCCESS
;
std
::
vector
<
SrsIngesterFFMPEG
*>::
iterator
it
;
for
(
it
=
ingesters
.
begin
();
it
!=
ingesters
.
end
();)
{
SrsIngesterFFMPEG
*
ingester
=
*
it
;
if
(
ingester
->
vhost
!=
vhost
)
{
++
it
;
continue
;
}
// stop the ffmpeg and free it.
ingester
->
ffmpeg
->
stop
();
srs_trace
(
"reload stop ingester, "
"vhost=%s, id=%s"
,
vhost
.
c_str
(),
ingester
->
id
.
c_str
());
srs_freep
(
ingester
);
// remove the item from ingesters.
it
=
ingesters
.
erase
(
it
);
}
return
ret
;
}
#endif
...
...
trunk/src/app/srs_app_ingest.hpp
查看文件 @
e6d8bc1
...
...
@@ -61,7 +61,6 @@ struct SrsIngesterFFMPEG
class
SrsIngester
:
public
ISrsThreadHandler
,
public
ISrsReloadHandler
{
private
:
std
::
string
input_stream_name
;
std
::
vector
<
SrsIngesterFFMPEG
*>
ingesters
;
private
:
SrsThread
*
pthread
;
...
...
@@ -85,6 +84,7 @@ private:
virtual
void
ingester
();
// interface ISrsReloadHandler.
public:
virtual
int
on_reload_vhost_removed
(
std
::
string
vhost
);
virtual
int
on_reload_vhost_added
(
std
::
string
vhost
);
};
...
...
请
注册
或
登录
后发表评论