Update input codec capabilities to be more consistent/accurate, and more easily automatically parsed

This commit is contained in:
Thulinma 2022-10-06 16:23:29 +02:00
parent 1a4a526a11
commit 7098f8430b
19 changed files with 108 additions and 116 deletions

View file

@ -65,7 +65,7 @@ namespace Mist{
capa["source_match"] = "/*.aac";
capa["source_file"] = "$source";
capa["priority"] = 9;
capa["codecs"][0u][1u].append("AAC");
capa["codecs"]["audio"].append("AAC");
thisTime = 0;
// init filePos at 1, else a 15 bit mismatch in expected frame size occurs
// dtsc.ccp +- line 215

View file

@ -20,15 +20,13 @@ namespace Mist{
capa["source_match"] = "/*";
capa["source_file"] = "$source";
capa["priority"] = 1;
capa["codecs"][0u][0u].null();
capa["codecs"][0u][1u].null();
capa["codecs"][0u][2u].null();
capa["codecs"].null();
av_register_all();
AVCodec *cInfo = 0;
while ((cInfo = av_codec_next(cInfo)) != 0){
if (cInfo->type == AVMEDIA_TYPE_VIDEO){capa["codecs"][0u][0u].append(cInfo->name);}
if (cInfo->type == AVMEDIA_TYPE_AUDIO){capa["codecs"][0u][1u].append(cInfo->name);}
if (cInfo->type == AVMEDIA_TYPE_SUBTITLE){capa["codecs"][0u][3u].append(cInfo->name);}
if (cInfo->type == AVMEDIA_TYPE_VIDEO){capa["codecs"]["video"].append(cInfo->name);}
if (cInfo->type == AVMEDIA_TYPE_AUDIO){capa["codecs"]["audio"].append(cInfo->name);}
if (cInfo->type == AVMEDIA_TYPE_SUBTITLE){capa["codecs"]["subtitle"].append(cInfo->name);}
}
}

View file

@ -80,9 +80,6 @@ namespace Mist{
capa["optional"]["segmentsize"]["option"] = "--segment-size";
capa["optional"]["segmentsize"]["type"] = "uint";
capa["optional"]["segmentsize"]["default"] = 5000;
capa["codecs"][0u][0u].append("*");
capa["codecs"][0u][1u].append("*");
capa["codecs"][0u][2u].append("*");
}
int inputBalancer::boot(int argc, char *argv[]){

View file

@ -129,9 +129,6 @@ namespace Mist{
"live media data. The push://[host][@password] style source allows all enabled protocols "
"that support push input to accept a push into MistServer, where you can accept incoming "
"streams from everyone, based on a set password, and/or use hostname/IP whitelisting.";
capa["codecs"][0u][0u].append("*");
capa["codecs"][0u][1u].append("*");
capa["codecs"][0u][2u].append("*");
bufferTime = 50000;
cutTime = 0;
segmentSize = 1900;

View file

@ -23,13 +23,13 @@ namespace Mist{
capa["source_match"].append("dtsc://*");
capa["always_match"].append("dtsc://*"); // can be said to always-on mode
capa["source_file"] = "$source";
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][0u].append("H263");
capa["codecs"][0u][0u].append("VP6");
capa["codecs"][0u][0u].append("theora");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("MP3");
capa["codecs"][0u][1u].append("vorbis");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("H263");
capa["codecs"]["video"].append("VP6");
capa["codecs"]["video"].append("theora");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("MP3");
capa["codecs"]["audio"].append("vorbis");
JSON::Value option;
option["arg"] = "integer";

View file

@ -19,26 +19,26 @@ namespace Mist{
capa["always_match"].append("mkv-exec:*");
capa["source_file"] = "$source";
capa["priority"] = 9;
capa["codecs"].append("H264");
capa["codecs"].append("HEVC");
capa["codecs"].append("VP8");
capa["codecs"].append("VP9");
capa["codecs"].append("AV1");
capa["codecs"].append("opus");
capa["codecs"].append("vorbis");
capa["codecs"].append("theora");
capa["codecs"].append("AAC");
capa["codecs"].append("PCM");
capa["codecs"].append("ALAW");
capa["codecs"].append("ULAW");
capa["codecs"].append("MP2");
capa["codecs"].append("MPEG2");
capa["codecs"].append("MP3");
capa["codecs"].append("AC3");
capa["codecs"].append("FLOAT");
capa["codecs"].append("DTS");
capa["codecs"].append("JSON");
capa["codecs"].append("subtitle");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("HEVC");
capa["codecs"]["video"].append("VP8");
capa["codecs"]["video"].append("VP9");
capa["codecs"]["video"].append("AV1");
capa["codecs"]["video"].append("theora");
capa["codecs"]["video"].append("MPEG2");
capa["codecs"]["audio"].append("opus");
capa["codecs"]["audio"].append("vorbis");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("PCM");
capa["codecs"]["audio"].append("ALAW");
capa["codecs"]["audio"].append("ULAW");
capa["codecs"]["audio"].append("MP2");
capa["codecs"]["audio"].append("MP3");
capa["codecs"]["audio"].append("AC3");
capa["codecs"]["audio"].append("FLOAT");
capa["codecs"]["audio"].append("DTS");
capa["codecs"]["metadata"].append("JSON");
capa["codecs"]["subtitle"].append("subtitle");
lastClusterBPos = 0;
lastClusterTime = 0;
bufferedPacks = 0;

View file

@ -21,11 +21,11 @@ namespace Mist{
capa["source_match"] = "/*.flv";
capa["source_file"] = "$source";
capa["priority"] = 9;
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][0u].append("H263");
capa["codecs"][0u][0u].append("VP6");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("MP3");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("H263");
capa["codecs"]["video"].append("VP6");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("MP3");
}
inputFLV::~inputFLV(){}

View file

@ -11,7 +11,7 @@ namespace Mist{
// May be set to always-on mode
capa["always_match"].append("h264-exec:*");
capa["priority"] = 0;
capa["codecs"][0u][0u].append("H264");
capa["codecs"]["video"].append("H264");
frameCount = 0;
startTime = Util::bootMS();
inputProcess = 0;

View file

@ -592,10 +592,10 @@ namespace Mist{
capa["always_match"] = capa["source_match"];
capa["priority"] = 9;
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("AC3");
capa["codecs"][0u][1u].append("MP3");
capa["codecs"]["video"].append("H264");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("AC3");
capa["codecs"]["audio"].append("MP3");
inFile = NULL;
}

View file

@ -16,8 +16,8 @@ namespace Mist{
capa["desc"] = "This input allows you to stream ISMV Video on Demand files.";
capa["source_match"] = "/*.ismv";
capa["priority"] = 9;
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"]["video"].append("H264");
capa["codecs"]["audio"].append("AAC");
inFile = 0;
}

View file

@ -19,7 +19,7 @@ namespace Mist{
capa["source_match"] = "/*.mp3";
capa["source_file"] = "$source";
capa["priority"] = 9;
capa["codecs"][0u][0u].append("MP3");
capa["codecs"]["audio"].append("MP3");
timestamp = 0;
}

View file

@ -169,13 +169,13 @@ namespace Mist{
capa["source_match"].append("mp4:*");
capa["source_file"] = "$source";
capa["priority"] = 9;
capa["codecs"][0u][0u].append("HEVC");
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][0u].append("H263");
capa["codecs"][0u][0u].append("VP6");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("AC3");
capa["codecs"][0u][1u].append("MP3");
capa["codecs"]["video"].append("HEVC");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("H263");
capa["codecs"]["video"].append("VP6");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("AC3");
capa["codecs"]["audio"].append("MP3");
readPos = 0;
}

View file

@ -38,9 +38,9 @@ namespace Mist{
capa["desc"] = "This input allows streaming of OGG files as Video on Demand.";
capa["source_match"] = "/*.ogg";
capa["source_file"] = "$source";
capa["codecs"][0u][0u].append("theora");
capa["codecs"][0u][1u].append("vorbis");
capa["codecs"][0u][1u].append("opus");
capa["codecs"]["video"].append("theora");
capa["codecs"]["audio"].append("vorbis");
capa["codecs"]["audio"].append("opus");
}
bool inputOGG::checkArguments(){

View file

@ -42,19 +42,19 @@ namespace Mist{
// These can/may be set to always-on mode
capa["always_match"].append("rtsp://*");
capa["priority"] = 9;
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][0u].append("HEVC");
capa["codecs"][0u][0u].append("MPEG2");
capa["codecs"][0u][0u].append("VP8");
capa["codecs"][0u][0u].append("VP9");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("MP3");
capa["codecs"][0u][1u].append("AC3");
capa["codecs"][0u][1u].append("ALAW");
capa["codecs"][0u][1u].append("ULAW");
capa["codecs"][0u][1u].append("PCM");
capa["codecs"][0u][1u].append("opus");
capa["codecs"][0u][1u].append("MP2");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("HEVC");
capa["codecs"]["video"].append("MPEG2");
capa["codecs"]["video"].append("VP8");
capa["codecs"]["video"].append("VP9");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("MP3");
capa["codecs"]["audio"].append("AC3");
capa["codecs"]["audio"].append("ALAW");
capa["codecs"]["audio"].append("ULAW");
capa["codecs"]["audio"].append("PCM");
capa["codecs"]["audio"].append("opus");
capa["codecs"]["audio"].append("MP2");
JSON::Value option;
option["arg"] = "integer";

View file

@ -41,19 +41,19 @@ namespace Mist{
capa["source_match"].append("*.sdp");
capa["always_match"].append("*.sdp");
capa["priority"] = 9;
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][0u].append("HEVC");
capa["codecs"][0u][0u].append("MPEG2");
capa["codecs"][0u][0u].append("VP8");
capa["codecs"][0u][0u].append("VP9");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("MP3");
capa["codecs"][0u][1u].append("AC3");
capa["codecs"][0u][1u].append("ALAW");
capa["codecs"][0u][1u].append("ULAW");
capa["codecs"][0u][1u].append("PCM");
capa["codecs"][0u][1u].append("opus");
capa["codecs"][0u][1u].append("MP2");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("HEVC");
capa["codecs"]["video"].append("MPEG2");
capa["codecs"]["video"].append("VP8");
capa["codecs"]["video"].append("VP9");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("MP3");
capa["codecs"]["audio"].append("AC3");
capa["codecs"]["audio"].append("ALAW");
capa["codecs"]["audio"].append("ULAW");
capa["codecs"]["audio"].append("PCM");
capa["codecs"]["audio"].append("opus");
capa["codecs"]["audio"].append("MP2");
JSON::Value option;
option["arg"] = "integer";

View file

@ -10,7 +10,7 @@ namespace Mist{
capa["source_match"].append("/*.srt");
capa["source_match"].append("/*.vtt");
capa["priority"] = 9;
capa["codecs"][0u][0u].append("subtitle");
capa["codecs"]["subtitle"].append("subtitle");
}
bool InputSrt::preRun(){

View file

@ -191,14 +191,14 @@ namespace Mist{
capa["incoming_push_url"] = "udp://$host:$port";
capa["incoming_push_url_match"] = "tsudp://*";
capa["priority"] = 9;
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][0u].append("HEVC");
capa["codecs"][0u][0u].append("MPEG2");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("AC3");
capa["codecs"][0u][1u].append("MP2");
capa["codecs"][0u][1u].append("opus");
capa["codecs"][1u][0u].append("rawts");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("HEVC");
capa["codecs"]["video"].append("MPEG2");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("AC3");
capa["codecs"]["audio"].append("MP2");
capa["codecs"]["audio"].append("opus");
capa["codecs"]["passthrough"].append("rawts");
inFile = NULL;
inputProcess = 0;
isFinished = false;

View file

@ -92,15 +92,15 @@ namespace Mist{
// These can/may be set to always-on mode
capa["always_match"].append("rist://*");
capa["priority"] = 9;
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][0u].append("HEVC");
capa["codecs"][0u][0u].append("MPEG2");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("MP3");
capa["codecs"][0u][1u].append("AC3");
capa["codecs"][0u][1u].append("MP2");
capa["codecs"][0u][1u].append("opus");
capa["codecs"][1u][0u].append("rawts");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("HEVC");
capa["codecs"]["video"].append("MPEG2");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("MP3");
capa["codecs"]["audio"].append("AC3");
capa["codecs"]["audio"].append("MP2");
capa["codecs"]["audio"].append("opus");
capa["codecs"]["passthrough"].append("rawts");
JSON::Value option;
option["arg"] = "integer";

View file

@ -61,15 +61,15 @@ namespace Mist{
capa["incoming_push_url"] = "srt://$host:$port";
capa["incoming_push_url_match"] = "srt://*";
capa["priority"] = 9;
capa["codecs"][0u][0u].append("H264");
capa["codecs"][0u][0u].append("HEVC");
capa["codecs"][0u][0u].append("MPEG2");
capa["codecs"][0u][1u].append("AAC");
capa["codecs"][0u][1u].append("MP3");
capa["codecs"][0u][1u].append("AC3");
capa["codecs"][0u][1u].append("MP2");
capa["codecs"][0u][1u].append("opus");
capa["codecs"][1u][0u].append("rawts");
capa["codecs"]["video"].append("H264");
capa["codecs"]["video"].append("HEVC");
capa["codecs"]["video"].append("MPEG2");
capa["codecs"]["audio"].append("AAC");
capa["codecs"]["audio"].append("MP3");
capa["codecs"]["audio"].append("AC3");
capa["codecs"]["audio"].append("MP2");
capa["codecs"]["audio"].append("opus");
capa["codecs"]["passthrough"].append("rawts");
JSON::Value option;
option["arg"] = "integer";