173#if !UE_BUILD_SHIPPING
407 return Factory->Create();
440 return bIsStreaming ?
448 FCapabilities Capabilities;
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
constexpr uint32 MONO_PCM_SAMPLE_SIZE
Definition AudioDecompress.h:21
ERealtimeAudioTaskType
Definition AudioDecompress.h:483
FAsyncTask< FAsyncAudioDecompressWorker > FAsyncAudioDecompress
Definition AudioDecompress.h:480
constexpr uint32 MONO_PCM_BUFFER_SIZE
Definition AudioDecompress.h:22
constexpr int32 MONO_PCM_BUFFER_SAMPLES
Definition AudioDecompress.h:20
ENGINE_API bool ShouldUseBackgroundPoolFor_FAsyncRealtimeAudioTask()
Definition AudioDecompress.cpp:892
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define RETURN_QUICK_DECLARE_CYCLE_STAT(StatId, GroupId)
Definition Stats.h:655
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
#define LLM_SCOPE(...)
Definition LowLevelMemTracker.h:1095
FQueuedThreadPool * GBackgroundPriorityThreadPool
Definition ThreadingBase.cpp:52
FQueuedThreadPool * GThreadPool
Definition ThreadingBase.cpp:48
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
Definition AudioDecompress.h:455
ICompressedAudioInfo * AudioInfo
Definition AudioDecompress.h:458
ENGINE_API void DoWork()
Definition AudioDecompress.cpp:806
int32 NumPrecacheFrames
Definition AudioDecompress.h:459
TStatId GetStatId() const
Definition AudioDecompress.h:474
USoundWave * Wave
Definition AudioDecompress.h:457
Definition AudioDecompress.h:619
FAsyncRealtimeAudioTaskProxy(T *InAudioBuffer, USoundWave *InWaveData)
Definition AudioDecompress.h:621
void EnsureCompletion(bool bDoWorkOnThisThreadIfNotStarted=true)
Definition AudioDecompress.h:647
FAsyncRealtimeAudioTaskProxy(USoundWave *InWaveData, uint8 *InAudioData, int32 InMaxSamples)
Definition AudioDecompress.h:630
bool IsDone()
Definition AudioDecompress.h:641
FAsyncRealtimeAudioTaskWorker< T > & GetTask()
Definition AudioDecompress.h:665
void StartBackgroundTask()
Definition AudioDecompress.h:658
~FAsyncRealtimeAudioTaskProxy()
Definition AudioDecompress.h:635
FAsyncRealtimeAudioTaskProxy(T *InAudioBuffer, uint8 *InAudioData, int32 InNumFramesToDecode, bool bInLoopingMode, bool bInSkipFirstBuffer)
Definition AudioDecompress.h:626
Definition AudioDecompress.h:496
ERealtimeAudioTaskType TaskType
Definition AudioDecompress.h:504
void DoWork()
Definition AudioDecompress.h:551
uint32 bSkipFirstBuffer
Definition AudioDecompress.h:505
USoundWave * WaveData
Definition AudioDecompress.h:499
FAsyncRealtimeAudioTaskWorker(T *InAudioBuffer, uint8 *InAudioData, int32 InNumPrecacheFrames, bool bInLoopingMode, bool bInSkipFirstBuffer)
Definition AudioDecompress.h:526
TStatId GetStatId() const
Definition AudioDecompress.h:585
FAsyncRealtimeAudioTaskWorker(T *InAudioBuffer, USoundWave *InWaveData)
Definition AudioDecompress.h:510
int32 BytesWritten
Definition AudioDecompress.h:503
uint32 bLooped
Definition AudioDecompress.h:507
FAsyncRealtimeAudioTaskWorker(USoundWave *InWaveData, uint8 *InAudioData, int32 InMaxSamples)
Definition AudioDecompress.h:539
int32 NumPrecacheFrames
Definition AudioDecompress.h:501
bool GetBufferLooped() const
Definition AudioDecompress.h:602
uint8 * AudioData
Definition AudioDecompress.h:500
uint32 bLoopingMode
Definition AudioDecompress.h:506
int32 GetBytesWritten() const
Definition AudioDecompress.h:608
T * AudioBuffer
Definition AudioDecompress.h:498
int32 MaxSamples
Definition AudioDecompress.h:502
ERealtimeAudioTaskType GetTaskType() const
Definition AudioDecompress.h:597
void EnsureCompletion(bool bDoWorkOnThisThreadIfNotStarted=true, bool bIsLatencySensitive=false)
Definition AsyncWork.h:429
void StartBackgroundTask(FQueuedThreadPool *InQueuedPool=GThreadPool, EQueuedWorkPriority InQueuedWorkPriority=EQueuedWorkPriority::Normal, EQueuedWorkFlags InQueuedWorkFlags=EQueuedWorkFlags::None, int64 InRequiredMemory=-1, const TCHAR *InDebugName=nullptr)
Definition AsyncWork.h:419
bool IsDone()
Definition AsyncWork.h:540
bool Cancel()
Definition AsyncWork.h:482
Definition AsyncWork.h:585
TTask & GetTask()
Definition AsyncWork.h:627
Definition ContentStreaming.h:110
Definition AudioDevice.h:417
Definition NameTypes.h:617
Definition AsyncWork.h:663
Definition ScopeLock.h:141
Definition AudioDecompress.h:414
FSimpleAudioInfoFactory(const TFunction< ICompressedAudioInfo *()> &InLambda, const FName &InFormatName, const FCapabilities InCaps={})
Definition AudioDecompress.h:422
virtual ~FSimpleAudioInfoFactory() override
Definition AudioDecompress.h:427
virtual bool IsSeekingSupported(const bool bIsStreaming) const override
Definition AudioDecompress.h:438
virtual ICompressedAudioInfo * Create() override
Definition AudioDecompress.h:431
Definition StreamedAudioChunkSeekTable.h:25
Definition AudioDecompress.h:31
virtual ENGINE_API ~ICompressedAudioInfo()
virtual void SeekToTime(const float SeekTime)=0
virtual bool IsStreamedCompressedInfo() const
Definition AudioDecompress.h:102
bool WantsFilteredLogging() const
Definition AudioDecompress.h:176
virtual const FSoundWaveProxyPtr & GetStreamingSoundWave() const
Definition AudioDecompress.h:168
virtual bool ReadCompressedData(uint8 *Destination, bool bLooping, uint32 BufferSize)=0
virtual int32 GetCurrentChunkIndex() const
Definition AudioDecompress.h:160
virtual void EnableHalfRate(bool HalfRate)=0
virtual int32 GetCurrentChunkOffset() const
Definition AudioDecompress.h:165
bool bHasError
Definition AudioDecompress.h:171
bool bWantsFilteredLogging
Definition AudioDecompress.h:174
virtual bool ReleaseStreamChunk(bool bBlockUntilReleased)
Definition AudioDecompress.h:119
virtual uint32 GetSourceBufferSize() const =0
virtual bool ReadCompressedInfo(const uint8 *InSrcBufferData, uint32 InSrcBufferDataSize, struct FSoundQualityInfo *QualityInfo)=0
ENGINE_API ICompressedAudioInfo()
Definition AudioDecompress.cpp:290
virtual bool SupportsStreaming() const
Definition AudioDecompress.h:111
ENGINE_API bool StreamCompressedInfo(USoundWave *Wave, struct FSoundQualityInfo *QualityInfo)
Definition AudioDecompress.cpp:899
virtual bool UsesVorbisChannelOrdering() const =0
virtual void SeekToFrame(const uint32 Frame)=0
virtual int GetStreamBufferSize() const =0
FSoundWaveProxyPtr StreamingSoundWave
Definition AudioDecompress.h:185
virtual ENGINE_API bool HasError() const
Definition AudioDecompress.cpp:296
virtual bool StreamCompressedInfoInternal(const FSoundWaveProxyPtr &InWaveProxy, struct FSoundQualityInfo *QualityInfo)=0
virtual bool StreamCompressedData(uint8 *Destination, bool bLooping, uint32 BufferSize, int32 &OutNumBytesStreamed)
Definition AudioDecompress.h:155
virtual void ExpandFile(uint8 *DstBuffer, struct FSoundQualityInfo *QualityInfo)=0
Definition AudioDecompress.h:211
virtual ENGINE_API bool StreamCompressedInfoInternal(const FSoundWaveProxyPtr &InWaveProxy, FSoundQualityInfo *QualityInfo) override
Definition AudioDecompress.cpp:243
uint32 SrcBufferPadding
Definition AudioDecompress.h:344
virtual int GetStreamBufferSize() const override
Definition AudioDecompress.h:225
const FStreamedAudioChunkSeekTable & GetCurrentSeekTable() const
Definition AudioDecompress.cpp:787
uint8 NumChannels
Definition AudioDecompress.h:328
const uint8 * SrcBufferData
Definition AudioDecompress.h:314
virtual uint32 GetMaxFrameSizeSamples() const =0
ENGINE_API const uint8 * GetLoadedChunk(const FSoundWaveProxyPtr &InSoundWave, uint32 ChunkIndex, uint32 &OutChunkSize)
Definition AudioDecompress.cpp:749
uint32 LastPCMByteSize
Definition AudioDecompress.h:336
virtual ENGINE_API bool ReadCompressedInfo(const uint8 *InSrcBufferData, uint32 InSrcBufferDataSize, FSoundQualityInfo *QualityInfo) override
Definition AudioDecompress.cpp:91
virtual ENGINE_API bool ReadCompressedData(uint8 *Destination, bool bLooping, uint32 BufferSize) override
Definition AudioDecompress.cpp:119
uint32 MaxFrameSizeSamples
Definition AudioDecompress.h:330
virtual ENGINE_API bool StreamCompressedData(uint8 *Destination, bool bLooping, uint32 BufferSize, int32 &OutNumBytesStreamed) override
Definition AudioDecompress.cpp:301
virtual void PrepareToLoop()
Definition AudioDecompress.h:244
uint32 SrcBufferOffset
Definition AudioDecompress.h:318
virtual ENGINE_API ~IStreamedCompressedInfo()
ENGINE_API IStreamedCompressedInfo()
Definition AudioDecompress.cpp:56
virtual void EnableHalfRate(bool HalfRate) override
Definition AudioDecompress.h:222
uint32 WriteFromDecodedPCM(uint8 *Destination, uint32 BufferSize)
Definition AudioDecompress.cpp:647
uint32 IncrementCurrentSampleCount(uint32 NewSamples)
Definition AudioDecompress.cpp:632
int32 StreamSeekBlockOffset
Definition AudioDecompress.h:361
FAudioChunkHandle CurCompressedChunkHandle
Definition AudioDecompress.h:346
bool bIsStreaming
Definition AudioDecompress.h:312
int32 GetStreamSeekBlockOffset() const
Definition AudioDecompress.h:253
std::atomic< int32 > StreamSeekBlockIndex
Definition AudioDecompress.h:359
uint32 SampleStride
Definition AudioDecompress.h:332
virtual int32 GetCurrentChunkIndex() const override
Definition AudioDecompress.h:229
virtual bool ParseHeader(const uint8 *InSrcBufferData, uint32 InSrcBufferDataSize, FSoundQualityInfo *QualityInfo)=0
TArray< uint8 > LastDecodedPCM
Definition AudioDecompress.h:334
int32 CurrentChunkIndex
Definition AudioDecompress.h:342
virtual ENGINE_API void SeekToFrame(const uint32 SeekFrame) override
Definition AudioDecompress.cpp:198
bool bStoringEndOfFile
Definition AudioDecompress.h:340
virtual bool IsStreamedCompressedInfo() const override
Definition AudioDecompress.h:231
uint32 TrueSampleCount
Definition AudioDecompress.h:324
int32 DecompressToPCMBuffer(uint16 FrameSize)
Definition AudioDecompress.cpp:584
uint32 StreamSeekToAudioFrames
Definition AudioDecompress.h:364
FAudioChunkHandle NextPlayingChunkHandle
Definition AudioDecompress.h:348
virtual ENGINE_API void ExpandFile(uint8 *DstBuffer, struct FSoundQualityInfo *QualityInfo) override
Definition AudioDecompress.cpp:217
uint32 CurrentSampleCount
Definition AudioDecompress.h:326
virtual bool CreateDecoder()=0
void RetainNextChunkInSequence(const FSoundWaveProxyPtr &InSoundWave, const uint32 InChunkIndex)
Definition AudioDecompress.cpp:732
uint32 ZeroBuffer(uint8 *Destination, uint32 BufferSize)
Definition AudioDecompress.cpp:719
uint32 LastPCMOffset
Definition AudioDecompress.h:338
uint32 AudioDataOffset
Definition AudioDecompress.h:320
uint32 AudioDataChunkIndex
Definition AudioDecompress.h:322
virtual bool UsesVorbisChannelOrdering() const override
Definition AudioDecompress.h:224
uint32 SrcBufferDataSize
Definition AudioDecompress.h:316
int32 GetStreamSeekBlockIndex() const
Definition AudioDecompress.h:252
virtual int32 GetCurrentChunkOffset() const override
Definition AudioDecompress.h:230
virtual uint32 GetSourceBufferSize() const override
Definition AudioDecompress.h:223
TPimplPtr< FStreamedAudioChunkSeekTable > CurrentChunkSeekTable
Definition AudioDecompress.h:350
virtual bool SupportsStreaming() const override
Definition AudioDecompress.h:226
virtual FDecodeResult Decode(const uint8 *CompressedData, const int32 CompressedDataSize, uint8 *OutPCMData, const int32 OutputPCMDataSize)=0
virtual ENGINE_API void SeekToTime(const float SeekTime) override
Definition AudioDecompress.cpp:167
virtual int32 GetFrameSize()=0
Definition AndroidPlatformMisc.h:14
Definition SoundWave.h:417
virtual int32 GeneratePCMData(uint8 *PCMData, const int32 SamplesNeeded)
Definition SoundWave.h:1296
@ false
Definition radaudio_common.h:23
Definition AudioDecompress.h:190
int32 NumCompressedBytesConsumed
Definition AudioDecompress.h:192
int32 NumAudioFramesProduced
Definition AudioDecompress.h:196
int32 NumPcmBytesProduced
Definition AudioDecompress.h:194
FDecodeResult()
Definition AudioDecompress.h:198
Definition AudioDecompress.h:395
static ENGINE_API IAudioInfoFactoryRegistry & Get()
Definition AudioDecompress.cpp:932
virtual void Unregister(IAudioInfoFactory *, FName)=0
virtual IAudioInfoFactory * Find(FName InName) const =0
virtual void Register(IAudioInfoFactory *, FName)=0
virtual ~IAudioInfoFactoryRegistry()=default
ICompressedAudioInfo * Create(FName InName) const
Definition AudioDecompress.h:403
Definition AudioDecompress.h:382
bool bSupportsSeekableStreaming
Definition AudioDecompress.h:384
bool bSupportsSeeking
Definition AudioDecompress.h:383
Definition AudioDecompress.h:373
virtual ~IAudioInfoFactory()=default
virtual bool IsSeekingSupported(const bool bIsStreaming) const =0
virtual ICompressedAudioInfo * Create()=0
Definition LightweightStats.h:416