1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

For #913, reload use complex error

This commit is contained in:
winlin 2017-09-22 16:14:30 +08:00
parent 3744606c9b
commit fd91df9411
28 changed files with 642 additions and 630 deletions

View file

@ -1295,12 +1295,13 @@ int SrsOriginHub::on_dvr_request_sh()
return ret;
}
int SrsOriginHub::on_reload_vhost_forward(string vhost)
srs_error_t SrsOriginHub::on_reload_vhost_forward(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
if (req->vhost != vhost) {
return ret;
return err;
}
// TODO: FIXME: maybe should ignore when publish already stopped?
@ -1310,70 +1311,68 @@ int SrsOriginHub::on_reload_vhost_forward(string vhost)
// Don't start forwarders when source is not active.
if (!is_active) {
return ret;
return err;
}
if ((ret = create_forwarders()) != ERROR_SUCCESS) {
srs_error("create forwarders failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "create forwarders");
}
srs_trace("vhost %s forwarders reload success", vhost.c_str());
return ret;
return err;
}
int SrsOriginHub::on_reload_vhost_dash(string vhost)
srs_error_t SrsOriginHub::on_reload_vhost_dash(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
if (req->vhost != vhost) {
return ret;
return err;
}
dash->on_unpublish();
// Don't start DASH when source is not active.
if (!is_active) {
return ret;
return err;
}
if ((ret = dash->on_publish()) != ERROR_SUCCESS) {
srs_error("DASH start failed, ret=%d", ret);
return ret;
return srs_error_new(ret, "dash start publish");
}
SrsSharedPtrMessage* cache_sh_video = source->meta->vsh();
if (cache_sh_video) {
if ((ret = format->on_video(cache_sh_video)) != ERROR_SUCCESS) {
return ret;
return srs_error_new(ret, "format on_video");
}
if ((ret = dash->on_video(cache_sh_video, format)) != ERROR_SUCCESS) {
srs_error("DASH consume video failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "dash on_video");
}
}
SrsSharedPtrMessage* cache_sh_audio = source->meta->ash();
if (cache_sh_audio) {
if ((ret = format->on_audio(cache_sh_audio)) != ERROR_SUCCESS) {
return ret;
return srs_error_new(ret, "format on_audio");
}
if ((ret = dash->on_audio(cache_sh_audio, format)) != ERROR_SUCCESS) {
srs_error("DASH consume audio failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "dash on_audio");
}
}
return ret;
return err;
}
int SrsOriginHub::on_reload_vhost_hls(string vhost)
srs_error_t SrsOriginHub::on_reload_vhost_hls(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
if (req->vhost != vhost) {
return ret;
return err;
}
// TODO: FIXME: maybe should ignore when publish already stopped?
@ -1382,12 +1381,11 @@ int SrsOriginHub::on_reload_vhost_hls(string vhost)
// Don't start HLS when source is not active.
if (!is_active) {
return ret;
return err;
}
if ((ret = hls->on_publish()) != ERROR_SUCCESS) {
srs_error("hls publish failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "hls publish failed");
}
srs_trace("vhost %s hls reload success", vhost.c_str());
@ -1399,34 +1397,33 @@ int SrsOriginHub::on_reload_vhost_hls(string vhost)
SrsSharedPtrMessage* cache_sh_video = source->meta->vsh();
if (cache_sh_video) {
if ((ret = format->on_video(cache_sh_video)) != ERROR_SUCCESS) {
return ret;
return srs_error_new(ret, "format on_video");
}
if ((ret = hls->on_video(cache_sh_video, format)) != ERROR_SUCCESS) {
srs_error("hls process video sequence header message failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "hls on_video");
}
}
SrsSharedPtrMessage* cache_sh_audio = source->meta->ash();
if (cache_sh_audio) {
if ((ret = format->on_audio(cache_sh_audio)) != ERROR_SUCCESS) {
return ret;
return srs_error_new(ret, "format on_audio");
}
if ((ret = hls->on_audio(cache_sh_audio, format)) != ERROR_SUCCESS) {
srs_error("hls process audio sequence header message failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "hls on_audio");
}
}
return ret;
return err;
}
int SrsOriginHub::on_reload_vhost_hds(string vhost)
srs_error_t SrsOriginHub::on_reload_vhost_hds(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
if (req->vhost != vhost) {
return ret;
return err;
}
// TODO: FIXME: maybe should ignore when publish already stopped?
@ -1436,26 +1433,25 @@ int SrsOriginHub::on_reload_vhost_hds(string vhost)
// Don't start HDS when source is not active.
if (!is_active) {
return ret;
return err;
}
if ((ret = hds->on_publish(req)) != ERROR_SUCCESS) {
srs_error("hds publish failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "hds publish failed");
}
srs_trace("vhost %s hds reload success", vhost.c_str());
#endif
return ret;
return err;
}
int SrsOriginHub::on_reload_vhost_dvr(string vhost)
srs_error_t SrsOriginHub::on_reload_vhost_dvr(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
if (req->vhost != vhost) {
return ret;
return err;
}
// TODO: FIXME: maybe should ignore when publish already stopped?
@ -1465,39 +1461,35 @@ int SrsOriginHub::on_reload_vhost_dvr(string vhost)
// Don't start DVR when source is not active.
if (!is_active) {
return ret;
return err;
}
// reinitialize the dvr, update plan.
if ((err = dvr->initialize(this, req)) != srs_success) {
// TODO: FIXME: Use error.
ret = srs_error_code(err);
srs_freep(err);
return ret;
return srs_error_wrap(err, "reload dvr");
}
// start to publish by new plan.
if ((ret = dvr->on_publish()) != ERROR_SUCCESS) {
srs_error("dvr publish failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "dvr publish failed");
}
if ((ret = on_dvr_request_sh()) != ERROR_SUCCESS) {
return ret;
return srs_error_new(ret, "request sh");
}
srs_trace("vhost %s dvr reload success", vhost.c_str());
return ret;
return err;
}
int SrsOriginHub::on_reload_vhost_transcode(string vhost)
srs_error_t SrsOriginHub::on_reload_vhost_transcode(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
if (req->vhost != vhost) {
return ret;
return err;
}
// TODO: FIXME: maybe should ignore when publish already stopped?
@ -1507,25 +1499,25 @@ int SrsOriginHub::on_reload_vhost_transcode(string vhost)
// Don't start transcode when source is not active.
if (!is_active) {
return ret;
return err;
}
if ((ret = encoder->on_publish(req)) != ERROR_SUCCESS) {
srs_error("start encoder failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "start encoder failed");
}
srs_trace("vhost %s transcode reload success", vhost.c_str());
#endif
return ret;
return err;
}
int SrsOriginHub::on_reload_vhost_exec(string vhost)
srs_error_t SrsOriginHub::on_reload_vhost_exec(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
if (req->vhost != vhost) {
return ret;
return err;
}
// TODO: FIXME: maybe should ignore when publish already stopped?
@ -1534,16 +1526,15 @@ int SrsOriginHub::on_reload_vhost_exec(string vhost)
// Don't start exec when source is not active.
if (!is_active) {
return ret;
return err;
}
if ((ret = ng_exec->on_publish(req)) != ERROR_SUCCESS) {
srs_error("start exec failed. ret=%d", ret);
return ret;
return srs_error_new(ret, "start exec failed");
}
srs_trace("vhost %s exec reload success", vhost.c_str());
return ret;
return err;
}
int SrsOriginHub::create_forwarders()
@ -1993,12 +1984,12 @@ srs_error_t SrsSource::initialize(SrsRequest* r, ISrsSourceHandler* h)
return err;
}
int SrsSource::on_reload_vhost_play(string vhost)
srs_error_t SrsSource::on_reload_vhost_play(string vhost)
{
int ret = ERROR_SUCCESS;
srs_error_t err = srs_success;
if (req->vhost != vhost) {
return ret;
return err;
}
// time_jitter
@ -2073,7 +2064,7 @@ int SrsSource::on_reload_vhost_play(string vhost)
#endif
}
return ret;
return err;
}
int SrsSource::on_source_id_changed(int id)