Description

Found while messing around with a revamp of some of the Audio Stream cache tests. The map in this test is a WIP as I'm still just trying stuff out, but hit this assert 5/5 times.

Assertion failed: FoundElement->NumConsumers.GetValue() >= 1 [File:F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\Engine\Private\AudioStreamingCache.cpp] [Line: 994] 

From log:

[2024.03.12-00.12.34:250][117]LogAudioStreamCaching: Display: Failed to find an available chunk slot in the audio streaming manager, likely because the cache was blown.
[2024.03.12-00.12.34:250][117]LogAudioStreamCaching: Warning: Failed to add follow-up chunk for TooMuch_DrumLine_48kHz_24b_Bink. This should not happen with our current TrimMemory() logic
[2024.03.12-00.12.34:250][117]LogAudioStreamCaching: Warning: Chunk 3 not yet loaded for playing SoundWave 'TooMuch_DrumLine_48kHz_24b_Bink'. LikelyReason: Not loaded fast enough, IO Saturation.

Crash reporter for assert:
In Bink Decoder: [Link Removed]
In ADPCM decoder: [Link Removed]

A previous ensure was found on Ancient Game and couldn't be reproed that has a similar callstack. See [Link Removed].

Steps to Reproduce

1) Launch AudioQA
2) In the Project Setttings, under Platform > Windows, set the Max Cache Size to 1000KB
3) Open the map AQ_Streaming
4) Launch in Standalone
5) Turn your audio down (because we're gonna spam a lot of sounds!)
6) Spam the heck out of the buttons! Especially Trim and Fill, but alternate with the other ones for a few seconds

Expected Result:
 The stream cache handles being mean to it

Actual Result:
 The sound stops abruptly and the standalone game crashes with an assert

Callstack

Bink version

UnrealEditor_Engine!FCachedAudioStreamingManager::RemoveReferenceToChunk() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\Engine\Private\AudioStreamingCache.cpp:701]
UnrealEditor_Engine!FAudioChunkHandle::~FAudioChunkHandle() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\Engine\Private\ContentStreaming.cpp:1565]
UnrealEditor_BinkAudioDecoder!IStreamedCompressedInfo::~IStreamedCompressedInfo() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\Engine\Public\AudioDecompress.h:203]
UnrealEditor_BinkAudioDecoder!FBinkAudioInfo::`vector deleting destructor'()
UnrealEditor_AudioMixer!Audio::FMixerSourceBuffer::~FMixerSourceBuffer() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\AudioMixer\Private\AudioMixerSourceBuffer.cpp:140]
UnrealEditor_AudioMixer!Audio::FMixerSourceBuffer::`scalar deleting destructor'()
UnrealEditor_AudioMixer!TArray<TSharedPtr<Audio::FMixerSourceBuffer,1>,TSizedDefaultAllocator<32> >::RemoveAtSwapImpl() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\Core\Public\Containers\Array.h:1765]
UnrealEditor_AudioMixer!Audio::FMixerSourceManager::ComputeNextBlockOfSamples() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\AudioMixer\Private\AudioMixerSourceManager.cpp:3295]
UnrealEditor_AudioMixer!Audio::FMixerDevice::OnProcessAudioStream() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\AudioMixer\Private\AudioMixerDevice.cpp:913]
UnrealEditor_AudioMixerCore!Audio::FOutputBuffer::MixNextBuffer() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\AudioMixerCore\Private\AudioMixer.cpp:247]
UnrealEditor_AudioMixerCore!Audio::IAudioMixerPlatformInterface::RunInternal() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\AudioMixerCore\Private\AudioMixer.cpp:747]
UnrealEditor_AudioMixerCore!Audio::IAudioMixerPlatformInterface::Run() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\AudioMixerCore\Private\AudioMixer.cpp:793]
UnrealEditor_Core!FRunnableThreadWin::Run() [F:\SMoyls_UE5_Release-5.4\Engine\Source\Runtime\Core\Private\Windows\WindowsRunnableThread.cpp:149]

ADPCM version:

UnrealEditor_Engine!FCachedAudioStreamingManager::RemoveReferenceToChunk() [AudioStreamingCache.cpp:701]
UnrealEditor_Engine!FAudioChunkHandle::operator=() [ContentStreaming.cpp:1507]
UnrealEditor_AdpcmAudioDecoder!FADPCMAudioInfo::GetLoadedChunk() [ADPCMAudioInfo.cpp:1033]
UnrealEditor_AdpcmAudioDecoder!FADPCMAudioInfo::StreamCompressedData() [ADPCMAudioInfo.cpp:893]
UnrealEditor_AudioMixer!Audio::FAsyncDecodeWorker::DoWork() [AudioMixerSourceDecode.cpp:187]
UnrealEditor_AudioMixer!FAsyncTaskBase::DoWork() [AsyncWork.h:289]
UnrealEditor_AudioMixer!FAsyncTaskBase::DoThreadedWork() [AsyncWork.h:313]
UnrealEditor_Core!FQueuedThread::Run() [ThreadingBase.cpp:1387]
UnrealEditor_Core!FRunnableThreadWin::Run() [WindowsRunnableThread.cpp:149]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-209483 in the post.

0
Login to Vote

Unresolved
ComponentUE - Audio - Stream Caching
Affects Versions5.45.05.15.25.3
Target Fix5.6
CreatedMar 12, 2024
UpdatedFeb 20, 2025
View Jira Issue