UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioMixerWasapiRenderStream.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "AudioMixer.h"
7#include "WasapiAudioFormat.h"
8
9#include <atomic>
10
13
15
17#include <mmdeviceapi.h> // IMMNotificationClient
18#include <audiopolicy.h> // IAudioSessionEvents
20
23
25
26namespace Audio
27{
32 {
33 public:
34
37
39 virtual bool TeardownHardware();
40 virtual bool IsInitialized() const;
41 virtual int32 GetNumFrames(const int32 InNumRequestedFrames) const;
43 virtual bool CloseAudioStream();
44 virtual bool StartAudioStream();
45 virtual bool StopAudioStream();
46 virtual void SubmitBuffer(const uint8* Buffer, const SIZE_T InNumFrames) { }
48
49 UE_DEPRECATED(5.7, "GetMinimumBufferSize() is deprecated. Please use GetDefaultDevicePeriod() in the future.")
51
53
56
59
62
65
67 std::atomic<bool> bIsInitialized = false;
68
70 std::atomic<EAudioOutputStreamState::Type> StreamState = EAudioOutputStreamState::Closed;
71
74
77
81
84
87
90
91 private:
92
94 void InitializeDownmixBuffers(const int32 InNumInputChannels, const int32 InNumFrames, const FWasapiAudioFormat& InAudioOutputFormat);
95 };
96}
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
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
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
#define THIRD_PARTY_INCLUDES_START
Definition GenericPlatformCompilerPreSetup.h:63
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AudioMixerWasapiRenderStream.h:32
FAudioMixerWasapiRenderStream()
Definition AudioMixerWasapiRenderStream.cpp:27
virtual bool IsInitialized() const
Definition AudioMixerWasapiRenderStream.cpp:213
virtual ~FAudioMixerWasapiRenderStream()
Definition AudioMixerWasapiRenderStream.cpp:31
TComPtr< IAudioClient2 > AudioClient
Definition AudioMixerWasapiRenderStream.h:58
TComPtr< IAudioRenderClient > RenderClient
Definition AudioMixerWasapiRenderStream.h:61
virtual bool StartAudioStream()
Definition AudioMixerWasapiRenderStream.cpp:339
uint32 DefaultDevicePeriod
Definition AudioMixerWasapiRenderStream.h:76
UE_DEPRECATED(5.7, "GetMinimumBufferSize() is deprecated. Please use GetDefaultDevicePeriod() in the future.") static uint32 GetMinimumBufferSize(const uint32 InSampleRate)
uint32 NumFramesPerDeviceBuffer
Definition AudioMixerWasapiRenderStream.h:80
virtual void SubmitDirectOutBuffer(const int32 InChannelIndex, const FAlignedFloatBuffer &InBuffer)
Definition AudioMixerWasapiRenderStream.h:47
virtual int32 GetNumFrames(const int32 InNumRequestedFrames) const
Definition AudioMixerWasapiRenderStream.cpp:253
virtual bool OpenAudioStream(const FWasapiRenderStreamParams &InParams, HANDLE InEventHandle)
Definition AudioMixerWasapiRenderStream.cpp:258
FWasapiAudioFormat AudioFormat
Definition AudioMixerWasapiRenderStream.h:64
FAlignedFloatBuffer DownmixScratchBuffer
Definition AudioMixerWasapiRenderStream.h:86
virtual bool CloseAudioStream()
Definition AudioMixerWasapiRenderStream.cpp:313
virtual bool TeardownHardware()
Definition AudioMixerWasapiRenderStream.cpp:195
std::atomic< EAudioOutputStreamState::Type > StreamState
Definition AudioMixerWasapiRenderStream.h:70
virtual bool InitializeHardware(const FWasapiRenderStreamParams &InParams)
Definition AudioMixerWasapiRenderStream.cpp:35
virtual void SubmitBuffer(const uint8 *Buffer, const SIZE_T InNumFrames)
Definition AudioMixerWasapiRenderStream.h:46
uint32 GetDefaultDevicePeriod() const
Definition AudioMixerWasapiRenderStream.h:55
std::atomic< bool > bIsInitialized
Definition AudioMixerWasapiRenderStream.h:67
FWasapiRenderStreamParams RenderStreamParams
Definition AudioMixerWasapiRenderStream.h:73
virtual bool StopAudioStream()
Definition AudioMixerWasapiRenderStream.cpp:368
uint32 CallbackBufferErrors
Definition AudioMixerWasapiRenderStream.h:83
TArray< float > MixdownGainsMap
Definition AudioMixerWasapiRenderStream.h:89
Definition WasapiAudioFormat.h:39
Definition IAudioMixerWasapiDeviceManager.h:88
Definition COMPointer.h:19
@ Closed
Definition AudioMixerTypes.h:28
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Definition Voronoi.cpp:10
Definition IAudioMixerWasapiDeviceManager.h:28