The buffer start time is calculated by subtracting the TimeBufferHintSeconds from the stream length:
const uint32 BufferStartTimeMS = UE::LWC::FloatToIntCastChecked<uint32>(FoundReplay->StreamInfo.LengthInMS - (TimeBufferHintSeconds * 1000.0));
However, if the TimeBufferHintSeconds is larger than the stream length, the negative result being cast to a uint32 will result in a very large number for the BufferStartTimeMS, causing all but the most recent checkpoint to be removed.
Set up an in-memory replay with checkpoints, and set TimeBufferHintSeconds to something multiple times larger than the delay between checkpoints.
When getting the checkpoint archive for a stream that is shorter than TimeBufferHintSeconds, all but the last checkpoint will be removed.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-210018 in the post.
0 |
Component | UE - Networking |
---|---|
Affects Versions | 5.4 |
Target Fix | 5.6 |
Created | Mar 18, 2024 |
---|---|
Updated | Oct 25, 2024 |