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

Refine dash controller publish or unpublish

This commit is contained in:
winlin 2019-04-17 07:34:01 +08:00
parent 6380e8f1c0
commit e9770933a6
2 changed files with 23 additions and 4 deletions

View file

@ -310,23 +310,34 @@ srs_error_t SrsDashController::initialize(SrsRequest* r)
return srs_error_wrap(err, "mpd"); return srs_error_wrap(err, "mpd");
} }
string home, path; return err;
}
srs_error_t SrsDashController::on_publish()
{
srs_error_t err = srs_success;
srs_freep(vcurrent); srs_freep(vcurrent);
vcurrent = new SrsFragmentedMp4(); vcurrent = new SrsFragmentedMp4();
if ((err = vcurrent->initialize(req, true, mpd, video_tack_id)) != srs_success) { if ((err = vcurrent->initialize(req, true, mpd, video_tack_id)) != srs_success) {
return srs_error_wrap(err, "video fragment"); return srs_error_wrap(err, "video fragment");
} }
srs_freep(acurrent); srs_freep(acurrent);
acurrent = new SrsFragmentedMp4(); acurrent = new SrsFragmentedMp4();
if ((err = acurrent->initialize(req, false, mpd, audio_track_id)) != srs_success) { if ((err = acurrent->initialize(req, false, mpd, audio_track_id)) != srs_success) {
return srs_error_wrap(err, "audio fragment"); return srs_error_wrap(err, "audio fragment");
} }
return err; return err;
} }
void SrsDashController::on_unpublish()
{
srs_freep(vcurrent);
srs_freep(acurrent);
}
srs_error_t SrsDashController::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* format) srs_error_t SrsDashController::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* format)
{ {
srs_error_t err = srs_success; srs_error_t err = srs_success;
@ -490,6 +501,10 @@ srs_error_t SrsDash::on_publish()
return err; return err;
} }
enabled = true; enabled = true;
if ((err = controller->on_publish()) != srs_success) {
return srs_error_wrap(err, "controller");
}
return err; return err;
} }
@ -532,5 +547,7 @@ void SrsDash::on_unpublish()
} }
enabled = false; enabled = false;
controller->on_unpublish();
} }

View file

@ -138,6 +138,8 @@ public:
virtual ~SrsDashController(); virtual ~SrsDashController();
public: public:
virtual srs_error_t initialize(SrsRequest* r); virtual srs_error_t initialize(SrsRequest* r);
virtual srs_error_t on_publish();
virtual void on_unpublish();
virtual srs_error_t on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* format); virtual srs_error_t on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* format);
virtual srs_error_t on_video(SrsSharedPtrMessage* shared_video, SrsFormat* format); virtual srs_error_t on_video(SrsSharedPtrMessage* shared_video, SrsFormat* format);
private: private: