TSDuck v3.40-3963
MPEG Transport Stream Toolkit
|
A subclass of TSAnalyzer with reporting capabilities. More...
#include <tsTSAnalyzerReport.h>
Public Member Functions | |
TSAnalyzerReport (DuckContext &duck, const BitRate &bitrate_hint=0, BitRateConfidence bitrate_confidence=BitRateConfidence::LOW) | |
Default constructor. | |
virtual | ~TSAnalyzerReport () override |
Virtual destructor. | |
void | feedPacket (const TSPacket &packet, const TSPacketMetadata &mdata) |
The following method feeds the analyzer with a TS packet. | |
void | getGlobalPIDs (std::vector< PID > &list) |
Get the list of global PID's. | |
void | getPIDs (std::vector< PID > &list) |
Get the list of all PID's. | |
void | getPIDsOfService (std::vector< PID > &list, uint16_t service_id) |
Get the list of PID's for one service id. | |
void | getPIDsWithPES (std::vector< PID > &list) |
Get the list of PID's carrying PES packets. | |
void | getServiceIds (std::vector< uint16_t > &list) |
Get the list of service ids. | |
void | getUnreferencedPIDs (std::vector< PID > &list) |
Get the list of unreferenced PID's. | |
void | report (std::ostream &strm, TSAnalyzerOptions &opt, Report &rep=(ts::NullReport::Instance())) |
General reporting method, using the specified options. | |
void | reportErrors (std::ostream &strm, const UString &title=UString()) |
This methods displays an error report. | |
void | reportJSON (TSAnalyzerOptions &opt, std::ostream &strm, const UString &title=UString(), Report &rep=(ts::NullReport::Instance())) |
This methods displays a JSON report. | |
void | reportNormalized (TSAnalyzerOptions &opt, std::ostream &strm, const UString &title=UString()) |
This methods displays a normalized report. | |
void | reportPIDs (Grid &grid, const UString &title=UString()) |
Report formatted analysis about PID's. | |
void | reportServices (Grid &grid, const UString &title=UString()) |
Report formatted analysis about services. | |
void | reportTables (Grid &grid, const UString &title=UString()) |
Report formatted analysis about tables. | |
UString | reportToString (TSAnalyzerOptions &opt, Report &rep=(ts::NullReport::Instance())) |
General reporting method, using the specified options. | |
void | reportTS (Grid &grid, const UString &title=UString()) |
Report formatted analysis about the global transport stream. | |
void | reset () |
Reset the analysis context. | |
void | setAnalysisOptions (const TSAnalyzerOptions &opt) |
Set the analysis options. | |
void | setBitrateHint (const BitRate &bitrate_hint=0, BitRateConfidence bitrate_confidence=BitRateConfidence::LOW) |
Specify a "bitrate hint" for the analysis. | |
void | setMaxConsecutiveSuspectCount (uint64_t count) |
Set the maximum number of consecutive suspect packets. | |
void | setMinErrorCountBeforeSuspect (uint64_t count) |
Set the number of consecutive packet errors threshold. | |
Protected Types | |
using | ETIDContextMap = std::map< ETID, ETIDContextPtr > |
Map of ETIDContext, indexed by ETID. | |
using | ETIDContextPtr = std::shared_ptr< ETIDContext > |
Safe pointer to an ETIDContext (not thread-safe). | |
using | PIDContextMap = std::map< PID, PIDContextPtr > |
Map of PIDContext, indexed by PID. | |
using | PIDContextPtr = std::shared_ptr< PIDContext > |
Safe pointer to a PIDContext (not thread-safe). | |
using | ServiceContextMap = std::map< uint16_t, ServiceContextPtr > |
Map of ServiceContext, indexed by service id. | |
using | ServiceContextPtr = std::shared_ptr< ServiceContext > |
Safe pointer to a ServiceContext (not thread-safe). | |
using | ServiceIdSet = std::set< uint16_t > |
Set of service ids. | |
Protected Member Functions | |
ETIDContextPtr | getETID (const Section §ion) |
Get an ETID context. | |
PIDContextPtr | getPID (PID pid, const UString &description=UNREFERENCED) |
Get a PID context. | |
ServiceContextPtr | getService (uint16_t service_id) |
Get a service context. | |
bool | pidExists (PID pid) const |
Check if a PID context exists. | |
void | recomputeStatistics () |
Update the global statistics value if internal data were modified. | |
Protected Attributes | |
UString | _country_code {} |
TOT country code. | |
DuckContext & | _duck |
TSDuck execution context. | |
cn::milliseconds | _duration {} |
Total broadcast duration. | |
Time | _first_local {} |
First system local time (first packet). | |
Time | _first_stt {} |
First STT (ATCS) UTC time stamp. | |
Time | _first_tdt {} |
First TDT UTC time stamp. | |
Time | _first_tot {} |
First TOT local time stamp. | |
Time | _first_utc {} |
First system UTC time (first packet). | |
BitRate | _global_bitrate = 0 |
Bitrate for global PID's. | |
ISDBTLayerCounter | _global_isdb_layers {} |
Same as _isdb_layers for global PID's. | |
size_t | _global_pid_cnt = 0 |
Number of global PID's (ref but no service). | |
uint64_t | _global_pkt_cnt = 0 |
Number of packets in global PID's. | |
size_t | _global_scr_pids = 0 |
Number of scrambled global PID's. | |
uint64_t | _invalid_sync = 0 |
Number of packets with invalid sync byte (not 0x47). | |
Time | _last_local {} |
Last system local time (recomputeStatistics). | |
Time | _last_stt {} |
Last STT (ATCS) time stamp. | |
Time | _last_tdt {} |
Last TDT UTC time stamp. | |
Time | _last_tot {} |
Last TOT local time stamp. | |
Time | _last_utc {} |
Last system UTC time (recomputeStatistics). | |
size_t | _pcr_pid_cnt = 0 |
Number of PID's with PCR's. | |
size_t | _pid_cnt = 0 |
Number of PID's (with actual packets). | |
PIDContextMap | _pids {} |
Description of PIDs. | |
BitRate | _psisi_bitrate = 0 |
Bitrate for global PSI/SI PID's. | |
size_t | _psisi_pid_cnt = 0 |
Number of global PSI/SI PID's (0x00 to 0x1F). | |
uint64_t | _psisi_pkt_cnt = 0 |
Number of packets in global PSI/SI PID's. | |
size_t | _psisi_scr_pids = 0 |
Number of scrambled global PSI/SI PID's (normally zero). | |
size_t | _scrambled_pid_cnt = 0 |
Number of scrambled PID's. | |
uint16_t | _scrambled_services_cnt = 0 |
Number of scrambled services. | |
ServiceContextMap | _services {} |
Description of services, map key: service id. | |
uint64_t | _suspect_ignored = 0 |
Number of suspect packets, ignored. | |
std::bitset< TID_MAX > | _tid_present {} |
Array of detected tables. | |
uint64_t | _transport_errors = 0 |
Number of packets with transport error. | |
BitRate | _ts_bitrate = 0 |
TS bitrate (either from PCR or options). | |
std::optional< uint16_t > | _ts_id {} |
Transport stream id. | |
ISDBTLayerCounter | _ts_isdb_layers {} |
For ISDB-T streams with 204-byte packets, map key = layer indicator (0-1) to value = number of TS packets. | |
BitRate | _ts_pcr_bitrate_188 = 0 |
Average TS bitrate in b/s (eval from PCR). | |
BitRate | _ts_pcr_bitrate_204 = 0 |
Average TS bitrate in b/s (eval from PCR). | |
uint64_t | _ts_pkt_cnt = 0 |
Number of TS packets. | |
BitRate | _ts_user_bitrate = 0 |
User-specified TS bitrate (if any). | |
BitRateConfidence | _ts_user_br_confidence = BitRateConfidence::LOW |
Confidence in user-specified TS bitrate. | |
BitRate | _unref_bitrate = 0 |
Bitrate for unreferenced PID's. | |
ISDBTLayerCounter | _unref_isdb_layers {} |
Same as _isdb_layers for unreferenced PID's. | |
size_t | _unref_pid_cnt = 0 |
Number of unreferenced PID's. | |
uint64_t | _unref_pkt_cnt = 0 |
Number of packets in unreferenced PID's. | |
size_t | _unref_scr_pids = 0 |
Number of scrambled unreferenced PID's. | |
A subclass of TSAnalyzer with reporting capabilities.
|
explicit |
Default constructor.
[in,out] | duck | TSDuck execution context. The reference is kept inside the analyzer. |
[in] | bitrate_hint | Optional bitrate "hint" for the analysis. It is the user-specified bitrate in bits/seconds, based on 188-byte packets. The bitrate hint is optional: if specified as zero, the analysis is based on the PCR values. |
[in] | bitrate_confidence | Confidence level in bitrate_hint. |
void ts::TSAnalyzerReport::setAnalysisOptions | ( | const TSAnalyzerOptions & | opt | ) |
Set the analysis options.
Must be set before feeding the first packet.
[in] | opt | Analysis options. |
void ts::TSAnalyzerReport::report | ( | std::ostream & | strm, |
TSAnalyzerOptions & | opt, | ||
Report & | rep = (ts::NullReport::Instance()) |
||
) |
General reporting method, using the specified options.
[in,out] | strm | Output text stream. |
[in,out] | opt | Analysis options. |
[in,out] | rep | Where to report errors. |
UString ts::TSAnalyzerReport::reportToString | ( | TSAnalyzerOptions & | opt, |
Report & | rep = (ts::NullReport::Instance()) |
||
) |
General reporting method, using the specified options.
[in,out] | opt | Analysis options. |
[in,out] | rep | Where to report errors. |
Report formatted analysis about the global transport stream.
[in,out] | grid | Output stream in a grid. |
[in] | title | Title string to display. |
Report formatted analysis about services.
[in,out] | grid | Output stream in a grid. |
[in] | title | Title string to display. |
Report formatted analysis about PID's.
[in,out] | grid | Output stream in a grid. |
[in] | title | Title string to display. |
Report formatted analysis about tables.
[in,out] | grid | Output stream in a grid. |
[in] | title | Title string to display. |
This methods displays an error report.
[in,out] | strm | Output text stream. |
[in] | title | Title string to display. |
void ts::TSAnalyzerReport::reportNormalized | ( | TSAnalyzerOptions & | opt, |
std::ostream & | strm, | ||
const UString & | title = UString() |
||
) |
This methods displays a normalized report.
[in,out] | opt | Analysis options. |
[in,out] | strm | Output text stream. |
[in] | title | Title string to display. |
void ts::TSAnalyzerReport::reportJSON | ( | TSAnalyzerOptions & | opt, |
std::ostream & | strm, | ||
const UString & | title = UString() , |
||
Report & | rep = (ts::NullReport::Instance()) |
||
) |
This methods displays a JSON report.
[in,out] | opt | Analysis options. |
[in,out] | strm | Output text stream. |
[in] | title | Title string. |
[in,out] | rep | Where to report errors. |
|
inherited |
The following method feeds the analyzer with a TS packet.
The stream is analyzed by repeatedly calling feedPacket().
[in] | packet | One TS packet from the stream. |
[in] | mdata | Associated metadata. |
|
inherited |
Specify a "bitrate hint" for the analysis.
[in] | bitrate_hint | Optional bitrate "hint" for the analysis. It is the user-specified bitrate in bits/seconds, based on 188-byte packets. The bitrate hint is optional: if specified as zero, the analysis is based on the PCR values. |
[in] | bitrate_confidence | Confidence level in bitrate_hint. |
|
inlineinherited |
Set the number of consecutive packet errors threshold.
[in] | count | The number of consecutive packet errors after which a packet is considered as suspect if it does not belong to a previously known PID. If set to zero, suspect packet detection is disabled. Initially set to the default value 1. |
|
inlineinherited |
Set the maximum number of consecutive suspect packets.
[in] | count | When that number of consecutive suspect packets is reached, the next packet will not be considered for suspect detection. Initially set to the default value 1. |
|
inherited |
Get the list of service ids.
[out] | list | The returned list of service ids. |
|
inherited |
Get the list of all PID's.
[out] | list | The returned list of all PID's. |
|
inherited |
Get the list of global PID's.
Global PID's are PID's which do not belong to a service.
[out] | list | The returned list of global PID's. |
|
inherited |
Get the list of unreferenced PID's.
[out] | list | The returned list of unreferenced PID's. |
|
inherited |
Get the list of PID's for one service id.
[out] | list | The returned list of PID's. |
[in] | service_id | The service id. |
|
inherited |
Get the list of PID's carrying PES packets.
[out] | list | The returned list of PID's carrying PES packets. |
|
protectedinherited |
Get a service context.
Allocate a new entry if service is not found.
[in] | service_id | Service to search. |
|
protectedinherited |
|
protectedinherited |
Check if a PID context exists.
[in] | pid | PID to search. |
|
protectedinherited |
Get a PID context.
Allocate a new entry if PID not found.
[in] | pid | PID to search. |
[in] | description | Initial description of the PID if the context is created. |