I didn't test on Bluray images, but without this, DVD images are evidently broken. I'll see if I can find a BD iso to test with.

Originally (before the change I referenced in the commit), it was 
```
pos = ((int64_t)UDFFileBlockPos(bdfile->file, seek_sector) - 32) * DVD_VIDEO_LB_LEN + seek_byte
```
where seek_sector is the integer division by DVD_VIDEO_LB_LEN and  seek_byte is the modulus (%). 

assuming that the simplified way to calculate the position (using UDFFilePos) is the same as 
```
pos = ((int64_t)UDFFileBlockPos(bdfile->file, seek_sector)) * DVD_VIDEO_LB_LEN + seek_byte
```
you need that difference of -32 blocks. 
This is where I'm not sure because the calculation inside those functions is quite convoluted. 

Now going back to the very first version of udf25.cpp I also see
```
  fileoff = UDFFileBlockPos(bdfile->file, seek_sector);
  fileoff -= 32;
```
But in 95e9aa26f6f91ce3b59d57560f6e5a93bb459291 this changed to what it is now. Until then, we were using UDFReadBlocksRaw while now we're using our XFile::Read method. That could be different too.