Analyser: Block Pattern Matching Continued


The last place that did not use groups for block pattern matching was the header pattern matching, and has now been updated. Previously it was using a header if its CRC was good or if it was just the first header in the group. Now it treats a CRC match as something that makes certain operations more confident in the result, but not as a strict guidline.

This helps because if a header has a CRC error as a protection and the header data is poorly readable we would be able to match proper data if it was present on the various track samples, but we may have chosen a segment where the correct data is not present, hence matching would have failed.

Also, the behaviour of all matching has been changed to fail even if ‘no match’ is allowed as a minimum condition; if a pattern is to be matched against certain type of data, such as a header, but such a segment type does not exist, this means that data was expected in the first place (although its content is irrelevant) hence it must fail. If this behaviour is not desired then that type of data should not be checked for.