on_publish hook新增continue_push_ms参数,用于断连续推延时控制

This commit is contained in:
xiongziliang
2022-06-04 11:06:35 +08:00
parent b0beea7781
commit b23cbaa0f8
10 changed files with 33 additions and 17 deletions

View File

@@ -44,14 +44,13 @@ void RtmpSession::onError(const SockException& err) {
NoticeCenter::Instance().emitEvent(Broadcast::kBroadcastFlowReport, _media_info, _total_bytes, duration, is_player, static_cast<SockInfo &>(*this));
}
GET_CONFIG(uint32_t, continue_push_ms, General::kContinuePushMS);
//如果是主动关闭的,那么不延迟注销
if (_push_src && continue_push_ms && err.getErrCode() != Err_shutdown) {
if (_push_src && _continue_push_ms && err.getErrCode() != Err_shutdown) {
//取消所有权
_push_src_ownership = nullptr;
//延时10秒注销流
auto push_src = std::move(_push_src);
getPoller()->doDelayTask(continue_push_ms, [push_src]() { return 0; });
getPoller()->doDelayTask(_continue_push_ms, [push_src]() { return 0; });
}
}
@@ -184,7 +183,7 @@ void RtmpSession::onCmd_publish(AMFDecoder &dec) {
}
_push_src->setListener(dynamic_pointer_cast<MediaSourceEvent>(shared_from_this()));
_continue_push_ms = option.continue_push_ms;
sendStatus({"level", "status",
"code", "NetStream.Publish.Start",
"description", "Started publishing stream.",