/// <summary>
        /// Process an MPEG2 section from the Open TV Title table.
        /// </summary>
        /// <param name="byteData">The MPEG2 section.</param>
        public static MediaHighway1CategorySection ProcessMediaHighwayCategoryTable(byte[] byteData)
        {
            if (RunParameters.Instance.DebugIDs.Contains("MHW1CATEGORYSECTIONS"))
                Logger.Instance.Dump("MHW1 Category Section", byteData, byteData.Length);

            Mpeg2BasicHeader mpeg2Header = new Mpeg2BasicHeader();

            try
            {
                mpeg2Header.Process(byteData);

                MediaHighway1CategorySection categorySection = new MediaHighway1CategorySection();
                categorySection.Process(byteData, mpeg2Header.Index);
                categorySection.LogMessage();
                return (categorySection);
            }
            catch (ArgumentOutOfRangeException e)
            {
                Logger.Instance.Write("<e> Category section parsing failed: " + e.Message);
                return (null);
            }
        }