Keep the number of bytes read as a int64 and recalculate the pts based on this each time instead of doing += on a double (it's lossy)