mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
For #1509, release coroutine when source is idle. 3.0.98
This commit is contained in:
parent
816aa91a7f
commit
857c783efc
6 changed files with 53 additions and 7 deletions
|
@ -609,13 +609,25 @@ srs_error_t SrsDvrPlan::initialize(SrsOriginHub* h, SrsDvrSegmenter* s, SrsReque
|
|||
return srs_error_wrap(err, "segmenter");
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
srs_error_t SrsDvrPlan::on_publish()
|
||||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
||||
if ((err = async->start()) != srs_success) {
|
||||
return srs_error_wrap(err, "async");
|
||||
}
|
||||
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
void SrsDvrPlan::on_unpublish()
|
||||
{
|
||||
async->stop();
|
||||
}
|
||||
|
||||
srs_error_t SrsDvrPlan::on_meta_data(SrsSharedPtrMessage* shared_metadata)
|
||||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
@ -699,6 +711,10 @@ SrsDvrSessionPlan::~SrsDvrSessionPlan()
|
|||
srs_error_t SrsDvrSessionPlan::on_publish()
|
||||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
||||
if ((err = SrsDvrPlan::on_publish()) != srs_success) {
|
||||
return err;
|
||||
}
|
||||
|
||||
// support multiple publish.
|
||||
if (dvr_enabled) {
|
||||
|
@ -724,6 +740,8 @@ srs_error_t SrsDvrSessionPlan::on_publish()
|
|||
|
||||
void SrsDvrSessionPlan::on_unpublish()
|
||||
{
|
||||
SrsDvrPlan::on_unpublish();
|
||||
|
||||
// support multiple publish.
|
||||
if (!dvr_enabled) {
|
||||
return;
|
||||
|
@ -766,6 +784,10 @@ srs_error_t SrsDvrSegmentPlan::initialize(SrsOriginHub* h, SrsDvrSegmenter* s, S
|
|||
srs_error_t SrsDvrSegmentPlan::on_publish()
|
||||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
||||
if ((err = SrsDvrPlan::on_publish()) != srs_success) {
|
||||
return err;
|
||||
}
|
||||
|
||||
// support multiple publish.
|
||||
if (dvr_enabled) {
|
||||
|
@ -791,6 +813,7 @@ srs_error_t SrsDvrSegmentPlan::on_publish()
|
|||
|
||||
void SrsDvrSegmentPlan::on_unpublish()
|
||||
{
|
||||
SrsDvrPlan::on_unpublish();
|
||||
}
|
||||
|
||||
srs_error_t SrsDvrSegmentPlan::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* format)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue