diff --git a/lib/ts_stream.cpp b/lib/ts_stream.cpp index 6e89f465..f063fc2a 100644 --- a/lib/ts_stream.cpp +++ b/lib/ts_stream.cpp @@ -736,6 +736,10 @@ namespace TS { avccBox.setPPSNumber(1); avccBox.setPPS(ppsInfo[it->first]); meta.tracks[it->first].init = std::string(avccBox.payload(), avccBox.payloadSize()); + + + + } break; case H265: { @@ -747,6 +751,17 @@ namespace TS { meta.tracks[it->first].codec = "HEVC"; meta.tracks[it->first].trackID = it->first; meta.tracks[it->first].init = hevcInfo[it->first].generateHVCC(); + int pmtCount = associationTable.getProgramCount(); + for (int i = 0; i < pmtCount; i++){ + int pid = associationTable.getProgramPID(i); + ProgramMappingEntry entry = mappingTable[pid].getEntry(0); + while (entry){ + if (entry.getElementaryPid() == tid){ + meta.tracks[it->first].lang = ProgramDescriptors(entry.getESInfo(), entry.getESInfoLength()).getLanguage(); + } + entry.advance(); + } + } } break; case ID3: { @@ -780,6 +795,18 @@ namespace TS { } break; } + + int pmtCount = associationTable.getProgramCount(); + for (int i = 0; i < pmtCount; i++){ + int pid = associationTable.getProgramPID(i); + ProgramMappingEntry entry = mappingTable[pid].getEntry(0); + while (entry){ + if (entry.getElementaryPid() == tid){ + meta.tracks[it->first].lang = ProgramDescriptors(entry.getESInfo(), entry.getESInfoLength()).getLanguage(); + } + entry.advance(); + } + } MEDIUM_MSG("Initialized track %lu as %s %s", it->first, meta.tracks[it->first].codec.c_str(), meta.tracks[it->first].type.c_str()); } if (threaded){ diff --git a/lib/ts_stream.h b/lib/ts_stream.h index e023e73a..db93e1f1 100644 --- a/lib/ts_stream.h +++ b/lib/ts_stream.h @@ -51,6 +51,7 @@ namespace TS { std::map ppsInfo; std::map hevcInfo; std::map metaInit; + std::map descriptors; mutable IPC::semaphore globalSem; diff --git a/src/analysers/ts_analyser.cpp b/src/analysers/ts_analyser.cpp index cf44335c..ace9ba6d 100755 --- a/src/analysers/ts_analyser.cpp +++ b/src/analysers/ts_analyser.cpp @@ -116,7 +116,7 @@ namespace Analysers { } res << std::endl; - if(detailLevel==1){ + if(detailLevel==10){ unsigned int counter = 0; for (unsigned int i = 9+headSize+padding; i