CodeTV.PSI.PSIPAT.Parse C# (CSharp) Method

Parse() public method

public Parse ( byte data ) : void
data byte
return void
        public override void Parse(byte[] data)
        {
            //		for (i = 0; i < N; i++) {
            //			program_number				// 16
            //			reserved					// 3
            //			if (program_number == 0)
            //				network_PID				// 13
            //			else
            //				program_map_PID			// 13
            //		}
            //		CRC_32
            base.Parse(data);
            programIds.Clear();
            for (int offset = 8; offset < this.SectionLength - 1; offset += 4)
            {
                Data patData = new Data();
                patData.ProgramNumber = (ushort)((data[offset] << 8) | data[offset+1]);
                patData.Reserved = (byte)(data[offset+2] >> 5);
                patData.Pid = (ushort)(((data[offset+2] & 0x1F) << 8) | data[offset+3]);
                patData.IsNetworkPID = (patData.ProgramNumber == 0);
                programIds.Add(patData);
                programIdsByProgramNumber[patData.ProgramNumber] = patData;
            }
        }