/// <summary> /// Beendet einen Verbraucher. /// </summary> /// <param name="pid">Die gewünschte Datenstromlennung.</param> public void StopFilter(ushort pid) { // Check statistics if (EnableStatistics) { // Load PinStatistics statistics = GetStatistics(pid); if (null != statistics) { if (statistics.SampleCount > 0) { Dump("[{0:00000}] #{1} {2} ([{3}..{4}] {5})", pid, statistics.SampleCount, statistics.SampleTotal, statistics.SampleMinSize, statistics.SampleMaxSize, statistics.BytesPerSample); } } } // Deregister m_Parser.RemoveFilter(pid); }
/// <summary> /// Verarbeitet die Liste der Dienste auf dem aktuellen Transportstrom. /// </summary> /// <param name="table">Die Liste der Dienste.</param> private void ProcessAssociationTable(PAT table) { // Count m_patProcessed++; // Remember m_lastPAT = table; // Read the mapping var mapping = new HashSet <ushort>(table.Services); // Reset foreach (var terminated in m_lastPMTs.Keys.Where(key => !mapping.Contains(key)).ToArray()) { m_parser.RemoveFilter(terminated); } // Add foreach (var active in mapping.Where(key => !m_lastPMTs.ContainsKey(key))) { Register <PMT>(table[active].Value, ProcessMappingTable); } }