I have noticed that current BlockStream implementation does not play well with BMPRaster (new virtual representation of Image source) seek/read patterns.
So I have spend two days reimplementing it - this is the most tricky code to implement, and unfortunately complexity cannot be reduced there in any way without harming the performance.
Well, I have run various tests to get it right, so I believe it should be OK by now, however if somebody keen and sharp would take time to review the code I would be happy.
So far it is made active just in _DEBUG mode, it is in "Core/BlockStream.cpp".
The motivation was to make it behave better when file is read "backwards" (by seeking and Getting chunks of data).