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_match"] = "/*.aac";
capa["source_file"] = "$source"; capa["source_file"] = "$source";
capa["priority"] = 9; capa["priority"] = 9;
capa["codecs"][0u][1u].append("AAC"); capa["codecs"]["audio"].append("AAC");
thisTime = 0; thisTime = 0;
// init filePos at 1, else a 15 bit mismatch in expected frame size occurs // init filePos at 1, else a 15 bit mismatch in expected frame size occurs
// dtsc.ccp +- line 215 // dtsc.ccp +- line 215

View file

@ -20,15 +20,13 @@ namespace Mist{
capa["source_match"] = "/*"; capa["source_match"] = "/*";
capa["source_file"] = "$source"; capa["source_file"] = "$source";
capa["priority"] = 1; capa["priority"] = 1;
capa["codecs"][0u][0u].null(); capa["codecs"].null();
capa["codecs"][0u][1u].null();
capa["codecs"][0u][2u].null();
av_register_all(); av_register_all();
AVCodec *cInfo = 0; AVCodec *cInfo = 0;
while ((cInfo = av_codec_next(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_VIDEO){capa["codecs"]["video"].append(cInfo->name);}
if (cInfo->type == AVMEDIA_TYPE_AUDIO){capa["codecs"][0u][1u].append(cInfo->name);} if (cInfo->type == AVMEDIA_TYPE_AUDIO){capa["codecs"]["audio"].append(cInfo->name);}
if (cInfo->type == AVMEDIA_TYPE_SUBTITLE){capa["codecs"][0u][3u].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"]["option"] = "--segment-size";
capa["optional"]["segmentsize"]["type"] = "uint"; capa["optional"]["segmentsize"]["type"] = "uint";
capa["optional"]["segmentsize"]["default"] = 5000; 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[]){ 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 " "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 " "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."; "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; bufferTime = 50000;
cutTime = 0; cutTime = 0;
segmentSize = 1900; segmentSize = 1900;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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