public override void ReadMetaData(RecordReader reader) { if (Signature == "XXXX") { // Segment length is always 4 which not interesting so skip 2 bytes reader.Seek(2); // Read lenght of the next segment uint nextSegmentLength = reader.ReadUInt32(); // Load the actual signature (segment after XXXX) Signature = reader.ReadStringFixedLength(4); // Length is ZERO so skip 2 bytes and use value from the previous segment reader.Seek(2); Length = nextSegmentLength; } else { Length = reader.ReadUInt16(); } }