diff --git a/trunk/src/app/srs_app_recv_thread.cpp b/trunk/src/app/srs_app_recv_thread.cpp index fe27a6c39..317309627 100644 --- a/trunk/src/app/srs_app_recv_thread.cpp +++ b/trunk/src/app/srs_app_recv_thread.cpp @@ -114,13 +114,13 @@ void SrsRecvThread::on_thread_stop() } SrsQueueRecvThread::SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms) - : SrsRecvThread(this, rtmp_sdk, timeout_ms) + : trd(this, rtmp_sdk, timeout_ms) { } SrsQueueRecvThread::~SrsQueueRecvThread() { - stop(); + trd.stop(); // clear all messages. std::vector::iterator it; @@ -131,6 +131,16 @@ SrsQueueRecvThread::~SrsQueueRecvThread() queue.clear(); } +int SrsQueueRecvThread::start() +{ + return trd.start(); +} + +void SrsQueueRecvThread::stop() +{ + trd.stop(); +} + bool SrsQueueRecvThread::empty() { return queue.empty(); diff --git a/trunk/src/app/srs_app_recv_thread.hpp b/trunk/src/app/srs_app_recv_thread.hpp index 18be0df1e..31852742e 100644 --- a/trunk/src/app/srs_app_recv_thread.hpp +++ b/trunk/src/app/srs_app_recv_thread.hpp @@ -87,13 +87,17 @@ public: * @see: SrsRtmpConn::playing * @see: https://github.com/winlinvip/simple-rtmp-server/issues/217 */ -class SrsQueueRecvThread : virtual public ISrsMessageHandler, virtual public SrsRecvThread +class SrsQueueRecvThread : virtual public ISrsMessageHandler { private: std::vector queue; + SrsRecvThread trd; public: SrsQueueRecvThread(SrsRtmpServer* rtmp_sdk, int timeout_ms); virtual ~SrsQueueRecvThread(); +public: + virtual int start(); + virtual void stop(); public: virtual bool empty(); virtual int size();