Restore non-native SRT support in HTTPTS output

Change-Id: I082cd72b0517a6e741f95345ae5fdf94ae4df1fe
This commit is contained in:
Thulinma 2023-01-24 02:31:51 +01:00
parent 03771ccac2
commit f4dbea4626
2 changed files with 6 additions and 11 deletions

View file

@ -15,11 +15,11 @@ namespace Mist{
sendRepeatingHeaders = 500; // PAT/PMT every 500ms (DVB spec) sendRepeatingHeaders = 500; // PAT/PMT every 500ms (DVB spec)
HTTP::URL target(config->getString("target")); HTTP::URL target(config->getString("target"));
if (target.protocol == "srt"){ if (target.protocol == "srt"){
std::string tgt = config->getString("target"); std::string newTarget = "ts-exec:srt-live-transmit file://con " + target.getUrl();
HTTP::URL srtUrl(tgt); INFO_MSG("Rewriting SRT target '%s' to '%s'", config->getString("target").c_str(), newTarget.c_str());
config->getOption("target", true).append("ts-exec:srt-live-transmit file://con " + srtUrl.getUrl()); config->getOption("target", true).append(newTarget);
INFO_MSG("Rewriting SRT target '%s' to '%s'", tgt.c_str(), config->getString("target").c_str()); }
} else if (config->getString("target").substr(0, 8) == "ts-exec:"){ if (config->getString("target").substr(0, 8) == "ts-exec:"){
std::string input = config->getString("target").substr(8); std::string input = config->getString("target").substr(8);
char *args[128]; char *args[128];
uint8_t argCnt = 0; uint8_t argCnt = 0;
@ -131,10 +131,6 @@ namespace Mist{
wantRequest = false; wantRequest = false;
} }
void OutHTTPTS::sendHeader(){
TSOutput::sendHeader();
}
void OutHTTPTS::sendTS(const char *tsData, size_t len){ void OutHTTPTS::sendTS(const char *tsData, size_t len){
if (isRecording()){ if (isRecording()){
myConn.SendNow(tsData, len); myConn.SendNow(tsData, len);

View file

@ -15,11 +15,10 @@ namespace Mist{
bool isRecording(); bool isRecording();
bool isFileTarget(){ bool isFileTarget(){
HTTP::URL target(config->getString("target")); HTTP::URL target(config->getString("target"));
if (isRecording() && (config->getString("target").substr(0, 8) != "ts-exec:")){return true;} if (isRecording() && target.protocol != "srt" && (config->getString("target").substr(0, 8) != "ts-exec:")){return true;}
return false; return false;
} }
virtual bool inlineRestartCapable() const{return true;} virtual bool inlineRestartCapable() const{return true;}
void sendHeader();
}; };
}// namespace Mist }// namespace Mist