mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 11:51:57 +00:00
ingest reload: support disable vhost
This commit is contained in:
parent
5e504944dc
commit
e6d8bc1e5c
3 changed files with 41 additions and 13 deletions
|
@ -562,6 +562,7 @@ int SrsConfig::reload()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
srs_trace("reload remove vhost %s success.", vhost.c_str());
|
srs_trace("reload remove vhost %s success.", vhost.c_str());
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// merge config: vhost modified.
|
// merge config: vhost modified.
|
||||||
|
|
|
@ -274,13 +274,6 @@ int SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective* vhost, S
|
||||||
log_file += stream;
|
log_file += stream;
|
||||||
log_file += ".log";
|
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
|
// input
|
||||||
std::string input_type = _srs_config->get_ingest_input_type(ingest);
|
std::string input_type = _srs_config->get_ingest_input_type(ingest);
|
||||||
if (input_type.empty()) {
|
if (input_type.empty()) {
|
||||||
|
@ -346,12 +339,17 @@ int SrsIngester::initialize_ffmpeg(SrsFFMPEG* ffmpeg, SrsConfDirective* vhost, S
|
||||||
|
|
||||||
void SrsIngester::ingester()
|
void SrsIngester::ingester()
|
||||||
{
|
{
|
||||||
// reportable
|
if ((int)ingesters.size() <= 0) {
|
||||||
if (pithy_print->can_print()) {
|
return;
|
||||||
// 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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reportable
|
||||||
|
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)
|
int SrsIngester::on_reload_vhost_added(string vhost)
|
||||||
|
@ -366,4 +364,33 @@ int SrsIngester::on_reload_vhost_added(string vhost)
|
||||||
return ret;
|
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
|
#endif
|
||||||
|
|
|
@ -61,7 +61,6 @@ struct SrsIngesterFFMPEG
|
||||||
class SrsIngester : public ISrsThreadHandler, public ISrsReloadHandler
|
class SrsIngester : public ISrsThreadHandler, public ISrsReloadHandler
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
std::string input_stream_name;
|
|
||||||
std::vector<SrsIngesterFFMPEG*> ingesters;
|
std::vector<SrsIngesterFFMPEG*> ingesters;
|
||||||
private:
|
private:
|
||||||
SrsThread* pthread;
|
SrsThread* pthread;
|
||||||
|
@ -85,6 +84,7 @@ private:
|
||||||
virtual void ingester();
|
virtual void ingester();
|
||||||
// interface ISrsReloadHandler.
|
// interface ISrsReloadHandler.
|
||||||
public:
|
public:
|
||||||
|
virtual int on_reload_vhost_removed(std::string vhost);
|
||||||
virtual int on_reload_vhost_added(std::string vhost);
|
virtual int on_reload_vhost_added(std::string vhost);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue