From 7c6bd0ce5cd5926207576bec7a11428ebb57faaf Mon Sep 17 00:00:00 2001 From: winlin Date: Wed, 29 Jun 2022 19:51:10 +0800 Subject: [PATCH] Refine async DVR manager. --- trunk/src/app/srs_app_dvr.cpp | 2 -- trunk/src/app/srs_app_dvr.hpp | 2 ++ trunk/src/app/srs_app_hybrid.cpp | 6 ++++++ trunk/src/app/srs_app_threads.cpp | 3 --- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/trunk/src/app/srs_app_dvr.cpp b/trunk/src/app/srs_app_dvr.cpp index 31a85d10b..0098a722a 100644 --- a/trunk/src/app/srs_app_dvr.cpp +++ b/trunk/src/app/srs_app_dvr.cpp @@ -566,8 +566,6 @@ string SrsDvrAsyncCallOnDvr::to_string() return ss.str(); } -extern SrsAsyncCallWorker* _srs_dvr_async; - SrsDvrPlan::SrsDvrPlan() { req = NULL; diff --git a/trunk/src/app/srs_app_dvr.hpp b/trunk/src/app/srs_app_dvr.hpp index 1792523c2..7e1a84274 100644 --- a/trunk/src/app/srs_app_dvr.hpp +++ b/trunk/src/app/srs_app_dvr.hpp @@ -253,5 +253,7 @@ public: virtual srs_error_t on_video(SrsSharedPtrMessage* shared_video, SrsFormat* format); }; +extern SrsAsyncCallWorker* _srs_dvr_async; + #endif diff --git a/trunk/src/app/srs_app_hybrid.cpp b/trunk/src/app/srs_app_hybrid.cpp index ccfda3245..2d55af4f1 100644 --- a/trunk/src/app/srs_app_hybrid.cpp +++ b/trunk/src/app/srs_app_hybrid.cpp @@ -11,6 +11,7 @@ #include #include #include +#include using namespace std; @@ -174,6 +175,11 @@ srs_error_t SrsHybridServer::initialize() return srs_error_wrap(err, "start timer"); } + // Start the DVR async call. + if ((err = _srs_dvr_async->start()) != srs_success) { + return srs_error_wrap(err, "dvr async"); + } + // Register some timers. timer20ms_->subscribe(clock_monitor_); timer5s_->subscribe(this); diff --git a/trunk/src/app/srs_app_threads.cpp b/trunk/src/app/srs_app_threads.cpp index 0061865f5..4e1a696fb 100644 --- a/trunk/src/app/srs_app_threads.cpp +++ b/trunk/src/app/srs_app_threads.cpp @@ -421,9 +421,6 @@ srs_error_t srs_thread_initialize() // Create global async worker for DVR. _srs_dvr_async = new SrsAsyncCallWorker(); - if ((err = _srs_dvr_async->start()) != srs_success) { - return srs_error_wrap(err, "dvr async"); - } return err; }