For OpenTV and some other built-in E2 readers, a raw data packet is constructed first before it is sent to be read. The eEPGCache::submitEventData() function performs a Bitwise AND operator calculation on the programs start time to set an eventid here in this preprocessing stage. The actual eventid harvested in the opentv reader code was not used here, as at the time there was no existing coding in the eEPGCache::submitEventData() function to pass eventid data.
Code:
config.recording.margin_before=3
Code:
<timer begin="1611601020" eit="5424">
eEPGCache::submitEventData() "example for opentv eit number"
Code:
1611601020 + (3*60sec) = 1611601200
1611601200 = 0x600F1530
0x600F1530 & 0xFFFF = 0x1530
0x1530 = 5424
As far as i am aware, crossepg loads without any preprocessing in E2 as raw data, so probably has the eventid in its raw data that is also read by the opentv built-in reader code but not used.
Another thing to note for any title string comparisons is the later OpenTV patches that added a hack to concatenate title... and ...summary data when they are detected as truncated. You can briefly observe this title string difference to EIT now/next data when the infobar display appears as you zap to concatenated titles. I think this feature could have been an optional.
Code:
https://github.com/OpenViX/enigma2/commit/9259e4d30402cad5c7b04ba71501332bbec78373#diff-b15024bd2b4ea380025955f8d690ba180059716f8f64bd2366de9dcd0d44b0c0