UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioMixerBuffer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "AudioMixer.h"
7#include "Audio.h"
8
9namespace Audio
10{
11 namespace EBufferType
12 {
21 }
22
23 class FMixerDevice;
24 class FMixerBuffer;
25 class IAudioTask;
26
28 {
29 public:
32
33 //~ Begin FSoundBuffer Interface
34 int32 GetSize() override;
35 int32 GetCurrentChunkIndex() const override;
36 int32 GetCurrentChunkOffset() const override;
37 bool IsRealTimeSourceReady() override;
39 void Seek(const float SeekTime) override;
40 //~ End FSoundBuffer Interface
41
48
51 bool IsRealTimeBuffer() const;
52
55
57 void GetPCMData(uint8** OutData, uint32* OutDataSize);
58
60
61 float GetSampleRate() const { return SampleRate; }
62 int32 GetNumChannels() const { return NumChannels; }
63 uint32 GetNumFrames() const { return NumFrames; }
64 void InitSampleRate(const float InSampleRate) { SampleRate = InSampleRate; }
65 void InitNumFrames(const uint32 InNumFrames) { NumFrames = InNumFrames; }
66
67 private:
68
70 IAudioTask* RealtimeAsyncHeaderParseTask;
71
73 ICompressedAudioInfo* DecompressionState;
74
76 EBufferType::Type BufferType;
77
79 int32 SampleRate;
80
82 uint32 NumFrames;
83
85 int16 BitsPerSample;
86
88 uint8* Data;
89
91 uint32 DataSize;
92
94 FThreadSafeBool bIsRealTimeSourceReady;
95
97 bool bIsDynamicResource;
98 };
99}
100
102{
103#define CASE_TO_STRING(X) case X: return TEXT(#X);
104 using namespace Audio::EBufferType;
105 switch(In)
106 {
108 CASE_TO_STRING(PCMPreview)
109 CASE_TO_STRING(PCMRealTime)
111 default: return TEXT("Unknown");
112 }
113#undef CASE_TO_STRING
114}
#define CASE_TO_STRING(X)
const TCHAR * LexToString(const Audio::EBufferType::Type In)
Definition AudioMixerBuffer.h:101
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AudioMixerBuffer.h:28
void InitSampleRate(const float InSampleRate)
Definition AudioMixerBuffer.h:64
~FMixerBuffer()
Definition AudioMixerBuffer.cpp:31
float GetSampleRate() const
Definition AudioMixerBuffer.h:61
int32 GetCurrentChunkIndex() const override
Definition AudioMixerBuffer.cpp:96
static FMixerBuffer * CreateNativeBuffer(FAudioDevice *AudioDevice, USoundWave *InWave)
Definition AudioMixerBuffer.cpp:261
void GetPCMData(uint8 **OutData, uint32 *OutDataSize)
Definition AudioMixerBuffer.cpp:412
int32 GetNumChannels() const
Definition AudioMixerBuffer.h:62
static FMixerBuffer * CreateProceduralBuffer(FAudioDevice *AudioDevice, USoundWave *InWave)
Definition AudioMixerBuffer.cpp:250
bool IsRealTimeSourceReady() override
Definition AudioMixerBuffer.cpp:115
EBufferType::Type GetType() const
Definition AudioMixerBuffer.cpp:392
int32 GetCurrentChunkOffset() const override
Definition AudioMixerBuffer.cpp:106
ICompressedAudioInfo * GetDecompressionState(bool bTakesOwnership=false)
Definition AudioMixerBuffer.cpp:402
uint32 GetNumFrames() const
Definition AudioMixerBuffer.h:63
static FMixerBuffer * CreatePreviewBuffer(FAudioDevice *AudioDevice, USoundWave *InWave)
Definition AudioMixerBuffer.cpp:241
bool IsRealTimeBuffer() const
Definition AudioMixerBuffer.cpp:397
void InitNumFrames(const uint32 InNumFrames)
Definition AudioMixerBuffer.h:65
bool ReadCompressedInfo(USoundWave *SoundWave) override
Definition AudioMixerBuffer.cpp:133
static FMixerBuffer * CreateStreamingBuffer(FAudioDevice *AudioDevice, USoundWave *InWave)
Definition AudioMixerBuffer.cpp:269
static FMixerBuffer * CreateRealTimeBuffer(FAudioDevice *AudioDevice, USoundWave *InWave)
Definition AudioMixerBuffer.cpp:349
void EnsureHeaderParseTaskFinished()
Definition AudioMixerBuffer.cpp:418
int32 GetSize() override
Definition AudioMixerBuffer.cpp:75
Definition AudioMixerSourceDecode.h:156
Definition AudioDevice.h:417
Definition Audio.h:551
class FAudioDevice * AudioDevice
Definition Audio.h:619
int32 NumChannels
Definition Audio.h:613
Definition ThreadSafeBool.h:17
Definition AudioDecompress.h:31
Definition SoundWave.h:417
Definition AudioMixerBuffer.h:12
Type
Definition AudioMixerBuffer.h:14
@ Invalid
Definition AudioMixerBuffer.h:19
@ PCM
Definition AudioMixerBuffer.h:15
@ PCMPreview
Definition AudioMixerBuffer.h:16
@ PCMRealTime
Definition AudioMixerBuffer.h:17
@ Streaming
Definition AudioMixerBuffer.h:18
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53