mistserver/src/output/output_hls.h

31 lines
887 B
C++

#include "output_http.h"
#include "output_ts_base.h"
namespace Mist{
class OutHLS : public TSOutput{
public:
OutHLS(Socket::Connection &conn);
~OutHLS();
static void init(Util::Config *cfg);
void sendTS(const char *tsData, size_t len = 188);
void sendNext();
void onHTTP();
bool isReadyForPlay();
virtual void onFail(const std::string &msg, bool critical = false);
virtual std::string getStatsName(){return Output::getStatsName();}
protected:
std::string h264init(const std::string &initData);
std::string h265init(const std::string &initData);
bool hasSessionIDs(){return !config->getBool("mergesessions");}
void sendHlsManifest(const std::string url);
void sendHlsMasterManifest();
void sendHlsMediaManifest(const size_t requestTid);
uint64_t targetTime;
};
}// namespace Mist
typedef Mist::OutHLS mistOut;