예제 #1
0
        private void processEventInformationTable(Collection <Mpeg2Section> sections, int frequency)
        {
            foreach (Mpeg2Section section in sections)
            {
                if (RunParameters.Instance.DebugIDs.Contains("EVENTINFORMATIONTABLE"))
                {
                    Logger.Instance.Dump("PSIP Event Information Table", section.Data, section.Data.Length);
                }

                try
                {
                    Mpeg2ExtendedHeader mpeg2Header = new Mpeg2ExtendedHeader();
                    mpeg2Header.Process(section.Data);
                    if (mpeg2Header.Current)
                    {
                        EventInformationTable eventInformationTable = new EventInformationTable();
                        eventInformationTable.Process(section.Data, mpeg2Header);
                        eventInformationTable.LogMessage();

                        if (eventInformationTable.Events != null)
                        {
                            foreach (EventInformationTableEntry eventEntry in eventInformationTable.Events)
                            {
                                processEvent(frequency, eventInformationTable.SourceID, eventEntry);
                            }
                        }
                    }
                }
                catch (ArgumentOutOfRangeException e)
                {
                    Logger.Instance.Write("<e> PSIP error: " + e.Message);
                }
            }
        }
예제 #2
0
        private void processEventInformationTable(Collection<Mpeg2Section> sections, int frequency)
        {
            foreach (Mpeg2Section section in sections)
            {
                if (RunParameters.Instance.DebugIDs.Contains("EVENTINFORMATIONTABLE"))
                    Logger.Instance.Dump("PSIP Event Information Table", section.Data, section.Data.Length);

                try
                {
                    Mpeg2ExtendedHeader mpeg2Header = new Mpeg2ExtendedHeader();
                    mpeg2Header.Process(section.Data);
                    if (mpeg2Header.Current)
                    {
                        EventInformationTable eventInformationTable = new EventInformationTable();
                        eventInformationTable.Process(section.Data, mpeg2Header);
                        eventInformationTable.LogMessage();

                        if (eventInformationTable.Events != null)
                        {
                            foreach (EventInformationTableEntry eventEntry in eventInformationTable.Events)
                                processEvent(frequency, eventInformationTable.SourceID, eventEntry);
                        }
                    }
                }
                catch (ArgumentOutOfRangeException e)
                {
                    Logger.Instance.Write("<e> PSIP error: " + e.Message);
                }
            }
        }