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.
How does TextureRenderTarget2D get TArray<uint8> type data?
How do I set a material as a post-processing material?
Why does the REMOVE method of map container remove elements have memory leaks?
How to delete some elements correctly when deleting an array loop?
What is the difference between Camera and CineCamera?
How to implement springarm components to scale according to mouse position in spawn?
How does TArray loop correctly remove elements in blueprints?
How to assign a value to a member of UMG's UMaterialInterface pointer type in C++?
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 |