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

Fix #2142, Async release bridger when unpublish. 4.0.60

This commit is contained in:
winlin 2021-01-14 19:12:01 +08:00
parent 10ffb2da36
commit 06adb9dc42
6 changed files with 60 additions and 5 deletions

View file

@ -34,6 +34,7 @@
#include <srs_app_reload.hpp>
#include <srs_core_performance.hpp>
#include <srs_service_st.hpp>
#include <srs_app_conn.hpp>
class SrsFormat;
class SrsRtmpFormat;
@ -484,7 +485,7 @@ public:
extern SrsSourceManager* _srs_sources;
// For two sources to bridge with each other.
class ISrsSourceBridger
class ISrsSourceBridger : public ISrsResource
{
public:
ISrsSourceBridger();
@ -497,7 +498,7 @@ public:
};
// live streaming source.
class SrsSource : public ISrsReloadHandler
class SrsSource : virtual public ISrsReloadHandler, virtual public ISrsDisposingHandler
{
friend class SrsOriginHub;
private:
@ -559,6 +560,10 @@ public:
virtual srs_error_t initialize(SrsRequest* r, ISrsSourceHandler* h);
// Bridge to other source, forward packets to it.
void bridge_to(ISrsSourceBridger* v);
// interface ISrsDisposingHandler
public:
virtual void on_before_dispose(ISrsResource* c);
virtual void on_disposing(ISrsResource* c);
// Interface ISrsReloadHandler
public:
virtual srs_error_t on_reload_vhost_play(std::string vhost);