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

refine edge ingester, use upstream adapter.

This commit is contained in:
winlin 2015-12-28 17:15:44 +08:00
parent 7ae2c6bf50
commit 86a7db0adb
3 changed files with 145 additions and 56 deletions

View file

@ -49,6 +49,7 @@ class SrsKbps;
class SrsLbRoundRobin;
class SrsTcpClient;
class SrsSimpleRtmpClient;
class SrsPacket;
/**
* the state of edge, auto machine
@ -75,6 +76,37 @@ enum SrsEdgeUserState
SrsEdgeUserStateReloading = 100,
};
/**
* the upstream of edge, can be rtmp or http.
*/
class SrsEdgeUpstream
{
public:
SrsEdgeUpstream();
virtual ~SrsEdgeUpstream();
public:
virtual int connect(SrsRequest* r, SrsLbRoundRobin* lb) = 0;
virtual int recv_message(SrsCommonMessage** pmsg) = 0;
virtual int decode_message(SrsCommonMessage* msg, SrsPacket** ppacket) = 0;
virtual void close() = 0;
virtual void kbps_sample(const char* label, int64_t age) = 0;
};
class SrsEdgeRtmpUpstream : public SrsEdgeUpstream
{
private:
SrsSimpleRtmpClient* sdk;
public:
SrsEdgeRtmpUpstream();
virtual ~SrsEdgeRtmpUpstream();
public:
virtual int connect(SrsRequest* r, SrsLbRoundRobin* lb);
virtual int recv_message(SrsCommonMessage** pmsg);
virtual int decode_message(SrsCommonMessage* msg, SrsPacket** ppacket);
virtual void close();
virtual void kbps_sample(const char* label, int64_t age);
};
/**
* edge used to ingest stream from origin.
*/
@ -85,8 +117,8 @@ private:
SrsPlayEdge* edge;
SrsRequest* req;
SrsReusableThread2* pthread;
SrsSimpleRtmpClient* sdk;
SrsLbRoundRobin* lb;
SrsEdgeUpstream* upstream;
public:
SrsEdgeIngester();
virtual ~SrsEdgeIngester();