diff --git a/trunk/src/app/srs_app_rtc_conn.cpp b/trunk/src/app/srs_app_rtc_conn.cpp index 192d89899..4c93c9adb 100644 --- a/trunk/src/app/srs_app_rtc_conn.cpp +++ b/trunk/src/app/srs_app_rtc_conn.cpp @@ -804,10 +804,11 @@ uint32_t SrsRtcPlayStream::get_video_publish_ssrc(uint32_t play_ssrc) return 0; } -SrsRtcPublishStream::SrsRtcPublishStream(SrsRtcConnection* session) +SrsRtcPublishStream::SrsRtcPublishStream(SrsRtcConnection* session, SrsContextId parent_cid) { timer_ = new SrsHourGlass(this, 200 * SRS_UTIME_MILLISECONDS); + parent_cid_ = parent_cid; is_started = false; session_ = session; request_keyframe_ = false; @@ -3111,7 +3112,7 @@ srs_error_t SrsRtcConnection::create_publisher(SrsRequest* req, SrsRtcStreamDesc return err; } - SrsRtcPublishStream* publisher = new SrsRtcPublishStream(this); + SrsRtcPublishStream* publisher = new SrsRtcPublishStream(this, _srs_context->get_id()); if ((err = publisher->initialize(req, stream_desc)) != srs_success) { srs_freep(publisher); return srs_error_wrap(err, "rtc publisher init"); diff --git a/trunk/src/app/srs_app_rtc_conn.hpp b/trunk/src/app/srs_app_rtc_conn.hpp index fd17471cd..0e75baf93 100644 --- a/trunk/src/app/srs_app_rtc_conn.hpp +++ b/trunk/src/app/srs_app_rtc_conn.hpp @@ -273,6 +273,7 @@ private: class SrsRtcPublishStream : virtual public ISrsHourGlass, virtual public ISrsRtpPacketDecodeHandler, virtual public ISrsRtcPublishStream { private: + SrsContextId parent_cid_; SrsHourGlass* timer_; uint64_t nn_audio_frames; private: @@ -298,7 +299,7 @@ private: SrsRtpExtensionTypes extension_types_; bool is_started; public: - SrsRtcPublishStream(SrsRtcConnection* session); + SrsRtcPublishStream(SrsRtcConnection* session, SrsContextId parent_cid); virtual ~SrsRtcPublishStream(); public: srs_error_t initialize(SrsRequest* req, SrsRtcStreamDescription* stream_desc);