ts-exec
This commit is contained in:
parent
08dc361e06
commit
f77431d5a3
2 changed files with 34 additions and 1 deletions
|
@ -3,10 +3,42 @@
|
|||
#include <mist/http_parser.h>
|
||||
#include <mist/stream.h>
|
||||
#include <unistd.h>
|
||||
#include <mist/procs.h>
|
||||
|
||||
namespace Mist{
|
||||
OutHTTPTS::OutHTTPTS(Socket::Connection & conn) : TSOutput(conn){
|
||||
sendRepeatingHeaders = 500;//PAT/PMT every 500ms (DVB spec)
|
||||
|
||||
if(config->getString("target").substr(0,10) == "ts-exec://"){
|
||||
std::string input = config->getString("target").substr(10);
|
||||
char *args[128];
|
||||
uint8_t argCnt = 0;
|
||||
char *startCh = 0;
|
||||
for (char *i = (char *)input.c_str(); i <= input.data() + input.size(); ++i){
|
||||
if (!*i){
|
||||
if (startCh){args[argCnt++] = startCh;}
|
||||
break;
|
||||
}
|
||||
if (*i == ' '){
|
||||
if (startCh){
|
||||
args[argCnt++] = startCh;
|
||||
startCh = 0;
|
||||
*i = 0;
|
||||
}
|
||||
}else{
|
||||
if (!startCh){startCh = i;}
|
||||
}
|
||||
}
|
||||
args[argCnt] = 0;
|
||||
|
||||
int fin = -1;
|
||||
Util::Procs::StartPiped(args, &fin, 0, 0);
|
||||
myConn = Socket::Connection(fin, -1);
|
||||
|
||||
wantRequest = false;
|
||||
parseData = true;
|
||||
INFO_MSG("ts exec stream");
|
||||
}
|
||||
}
|
||||
|
||||
OutHTTPTS::~OutHTTPTS(){}
|
||||
|
@ -41,6 +73,7 @@ namespace Mist{
|
|||
capa["methods"][0u]["type"] = "html5/video/mpeg";
|
||||
capa["methods"][0u]["priority"] = 1ll;
|
||||
capa["push_urls"].append("/*.ts");
|
||||
capa["push_urls"].append("ts-exec://*");
|
||||
|
||||
JSON::Value opt;
|
||||
opt["arg"] = "string";
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace Mist {
|
|||
void initialSeek();
|
||||
private:
|
||||
bool isRecording();
|
||||
bool isFileTarget(){return isRecording();}
|
||||
bool isFileTarget(){return isRecording() && config->getString("target").substr(0,10) != "ts-exec://" ;}
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue