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

for #299, refine code.

This commit is contained in:
winlin 2017-02-19 22:03:51 +08:00
parent ede1c34a25
commit cee9d736a4
4 changed files with 64 additions and 13 deletions

View file

@ -28,19 +28,45 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_app_config.hpp> #include <srs_app_config.hpp>
#include <srs_rtmp_stack.hpp> #include <srs_rtmp_stack.hpp>
SrsMpegDash::SrsMpegDash() SrsFragmentedMp4::SrsFragmentedMp4()
{
}
SrsFragmentedMp4::~SrsFragmentedMp4()
{
}
SrsMpdWriter::SrsMpdWriter()
{
}
SrsMpdWriter::~SrsMpdWriter()
{
}
SrsDashController::SrsDashController()
{
}
SrsDashController::~SrsDashController()
{
}
SrsDash::SrsDash()
{ {
hub = NULL; hub = NULL;
req = NULL; req = NULL;
controller = new SrsDashController();
enabled = false; enabled = false;
} }
SrsMpegDash::~SrsMpegDash() SrsDash::~SrsDash()
{ {
srs_freep(controller);
} }
int SrsMpegDash::initialize(SrsOriginHub* h, SrsRequest* r) int SrsDash::initialize(SrsOriginHub* h, SrsRequest* r)
{ {
int ret = ERROR_SUCCESS; int ret = ERROR_SUCCESS;
@ -50,7 +76,7 @@ int SrsMpegDash::initialize(SrsOriginHub* h, SrsRequest* r)
return ret; return ret;
} }
int SrsMpegDash::on_publish() int SrsDash::on_publish()
{ {
int ret = ERROR_SUCCESS; int ret = ERROR_SUCCESS;
@ -68,7 +94,7 @@ int SrsMpegDash::on_publish()
return ret; return ret;
} }
int SrsMpegDash::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* format) int SrsDash::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* format)
{ {
int ret = ERROR_SUCCESS; int ret = ERROR_SUCCESS;
@ -79,7 +105,7 @@ int SrsMpegDash::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* format)
return ret; return ret;
} }
int SrsMpegDash::on_video(SrsSharedPtrMessage* shared_video, SrsFormat* format) int SrsDash::on_video(SrsSharedPtrMessage* shared_video, SrsFormat* format)
{ {
int ret = ERROR_SUCCESS; int ret = ERROR_SUCCESS;
@ -90,7 +116,7 @@ int SrsMpegDash::on_video(SrsSharedPtrMessage* shared_video, SrsFormat* format)
return ret; return ret;
} }
void SrsMpegDash::on_unpublish() void SrsDash::on_unpublish()
{ {
// Prevent duplicated unpublish. // Prevent duplicated unpublish.
if (!enabled) { if (!enabled) {

View file

@ -35,25 +35,49 @@ class SrsSharedPtrMessage;
class SrsFormat; class SrsFormat;
/** /**
* The FMP4(Fragmented MP4) for DASH streaming.
*/ */
class SrsFragmentedMp4 class SrsFragmentedMp4
{ {
public: public:
SrsFragmentedMp4();
virtual ~SrsFragmentedMp4();
};
/**
* The writer to write MPD for DASH.
*/
class SrsMpdWriter
{
public:
SrsMpdWriter();
virtual ~SrsMpdWriter();
};
/**
* The controller for DASH, control the MPD and FMP4 generating system.
*/
class SrsDashController
{
public:
SrsDashController();
virtual ~SrsDashController();
}; };
/** /**
* The MPEG-DASH encoder, transmux RTMP to DASH. * The MPEG-DASH encoder, transmux RTMP to DASH.
*/ */
class SrsMpegDash class SrsDash
{ {
private: private:
bool enabled; bool enabled;
private: private:
SrsRequest* req; SrsRequest* req;
SrsOriginHub* hub; SrsOriginHub* hub;
SrsDashController* controller;
public: public:
SrsMpegDash(); SrsDash();
virtual ~SrsMpegDash(); virtual ~SrsDash();
public: public:
// Initalize the encoder. // Initalize the encoder.
virtual int initialize(SrsOriginHub* h, SrsRequest* r); virtual int initialize(SrsOriginHub* h, SrsRequest* r);
@ -68,3 +92,4 @@ public:
}; };
#endif #endif

View file

@ -845,7 +845,7 @@ SrsOriginHub::SrsOriginHub()
is_active = false; is_active = false;
hls = new SrsHls(); hls = new SrsHls();
dash = new SrsMpegDash(); dash = new SrsDash();
dvr = new SrsDvr(); dvr = new SrsDvr();
#ifdef SRS_AUTO_TRANSCODE #ifdef SRS_AUTO_TRANSCODE
encoder = new SrsEncoder(); encoder = new SrsEncoder();

View file

@ -57,7 +57,7 @@ class SrsConnection;
class SrsMessageHeader; class SrsMessageHeader;
class SrsHls; class SrsHls;
class SrsDvr; class SrsDvr;
class SrsMpegDash; class SrsDash;
#ifdef SRS_AUTO_TRANSCODE #ifdef SRS_AUTO_TRANSCODE
class SrsEncoder; class SrsEncoder;
#endif #endif
@ -427,7 +427,7 @@ private:
// hls handler. // hls handler.
SrsHls* hls; SrsHls* hls;
// The DASH encoder. // The DASH encoder.
SrsMpegDash* dash; SrsDash* dash;
// dvr handler. // dvr handler.
SrsDvr* dvr; SrsDvr* dvr;
// transcoding handler. // transcoding handler.