aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2023-12-20 01:53:27 -0800
committerChris Robinson <[email protected]>2023-12-20 01:53:27 -0800
commitaa6e04a5562052db172117043165ae999683b052 (patch)
tree11b36fabd9a542aca0f5ad234d365ce8067dd46d
parent59c466077fd6f16af64afcc6260bb61aa4e632dc (diff)
Ensure struct members are initialized
-rw-r--r--al/source.h22
-rw-r--r--alc/backends/portaudio.cpp34
-rw-r--r--alc/backends/pulseaudio.cpp4
-rw-r--r--alc/backends/sndio.cpp2
-rw-r--r--alc/effects/autowah.cpp26
-rw-r--r--alc/effects/chorus.cpp4
-rw-r--r--alc/effects/dedicated.cpp4
-rw-r--r--alc/effects/echo.cpp2
-rw-r--r--alc/effects/fshifter.cpp2
-rw-r--r--alc/effects/pshifter.cpp32
-rw-r--r--alc/effects/reverb.cpp6
-rw-r--r--common/alsem.h2
-rw-r--r--common/polyphase_resampler.h2
-rw-r--r--core/bformatdec.h6
-rw-r--r--core/device.h10
-rw-r--r--core/filters/nfc.h24
-rw-r--r--core/hrtf.h2
-rw-r--r--core/uhjfilter.h2
-rw-r--r--core/voice.h50
-rw-r--r--examples/alffplay.cpp2
-rw-r--r--examples/alstreamcb.cpp2
-rw-r--r--utils/makemhr/makemhr.cpp8
22 files changed, 124 insertions, 124 deletions
diff --git a/al/source.h b/al/source.h
index 69bedda3..1a93d927 100644
--- a/al/source.h
+++ b/al/source.h
@@ -108,19 +108,19 @@ struct ALsource {
/** Direct filter and auxiliary send info. */
struct {
- float Gain;
- float GainHF;
- float HFReference;
- float GainLF;
- float LFReference;
+ float Gain{};
+ float GainHF{};
+ float HFReference{};
+ float GainLF{};
+ float LFReference{};
} Direct;
struct SendData {
- ALeffectslot *Slot;
- float Gain;
- float GainHF;
- float HFReference;
- float GainLF;
- float LFReference;
+ ALeffectslot *Slot{};
+ float Gain{};
+ float GainHF{};
+ float HFReference{};
+ float GainLF{};
+ float LFReference{};
};
std::array<SendData,MaxSendCount> Send;
diff --git a/alc/backends/portaudio.cpp b/alc/backends/portaudio.cpp
index dc9725b0..b6013dcc 100644
--- a/alc/backends/portaudio.cpp
+++ b/alc/backends/portaudio.cpp
@@ -79,13 +79,6 @@ struct PortPlayback final : public BackendBase {
int writeCallback(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer,
const PaStreamCallbackTimeInfo *timeInfo, const PaStreamCallbackFlags statusFlags) noexcept;
- static int writeCallbackC(const void *inputBuffer, void *outputBuffer,
- unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo,
- const PaStreamCallbackFlags statusFlags, void *userData) noexcept
- {
- return static_cast<PortPlayback*>(userData)->writeCallback(inputBuffer, outputBuffer,
- framesPerBuffer, timeInfo, statusFlags);
- }
void open(std::string_view name) override;
bool reset() override;
@@ -156,9 +149,16 @@ void PortPlayback::open(std::string_view name)
}
retry_open:
+ static constexpr auto writeCallback = [](const void *inputBuffer, void *outputBuffer,
+ unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo,
+ const PaStreamCallbackFlags statusFlags, void *userData) noexcept
+ {
+ return static_cast<PortPlayback*>(userData)->writeCallback(inputBuffer, outputBuffer,
+ framesPerBuffer, timeInfo, statusFlags);
+ };
PaStream *stream{};
PaError err{Pa_OpenStream(&stream, nullptr, &params, mDevice->Frequency, mDevice->UpdateSize,
- paNoFlag, &PortPlayback::writeCallbackC, this)};
+ paNoFlag, writeCallback, this)};
if(err != paNoError)
{
if(params.sampleFormat == paFloat32)
@@ -236,13 +236,6 @@ struct PortCapture final : public BackendBase {
int readCallback(const void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer,
const PaStreamCallbackTimeInfo *timeInfo, const PaStreamCallbackFlags statusFlags) noexcept;
- static int readCallbackC(const void *inputBuffer, void *outputBuffer,
- unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo,
- const PaStreamCallbackFlags statusFlags, void *userData) noexcept
- {
- return static_cast<PortCapture*>(userData)->readCallback(inputBuffer, outputBuffer,
- framesPerBuffer, timeInfo, statusFlags);
- }
void open(std::string_view name) override;
void start() override;
@@ -251,7 +244,7 @@ struct PortCapture final : public BackendBase {
uint availableSamples() override;
PaStream *mStream{nullptr};
- PaStreamParameters mParams;
+ PaStreamParameters mParams{};
RingBufferPtr mRing{nullptr};
};
@@ -317,8 +310,15 @@ void PortCapture::open(std::string_view name)
}
mParams.channelCount = static_cast<int>(mDevice->channelsFromFmt());
+ static constexpr auto readCallback = [](const void *inputBuffer, void *outputBuffer,
+ unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timeInfo,
+ const PaStreamCallbackFlags statusFlags, void *userData) noexcept
+ {
+ return static_cast<PortCapture*>(userData)->readCallback(inputBuffer, outputBuffer,
+ framesPerBuffer, timeInfo, statusFlags);
+ };
PaError err{Pa_OpenStream(&mStream, &mParams, nullptr, mDevice->Frequency,
- paFramesPerBufferUnspecified, paNoFlag, &PortCapture::readCallbackC, this)};
+ paFramesPerBufferUnspecified, paNoFlag, readCallback, this)};
if(err != paNoError)
throw al::backend_exception{al::backend_error::NoDevice, "Failed to open stream: %s",
Pa_GetErrorText(err)};
diff --git a/alc/backends/pulseaudio.cpp b/alc/backends/pulseaudio.cpp
index 8533cdb9..aec91229 100644
--- a/alc/backends/pulseaudio.cpp
+++ b/alc/backends/pulseaudio.cpp
@@ -658,8 +658,8 @@ struct PulsePlayback final : public BackendBase {
std::optional<std::string> mDeviceName{std::nullopt};
bool mIs51Rear{false};
- pa_buffer_attr mAttr;
- pa_sample_spec mSpec;
+ pa_buffer_attr mAttr{};
+ pa_sample_spec mSpec{};
pa_stream *mStream{nullptr};
diff --git a/alc/backends/sndio.cpp b/alc/backends/sndio.cpp
index 8477ed1f..2cb577fd 100644
--- a/alc/backends/sndio.cpp
+++ b/alc/backends/sndio.cpp
@@ -47,7 +47,7 @@ namespace {
constexpr char sndio_device[] = "SndIO Default";
struct SioPar : public sio_par {
- SioPar() { sio_initpar(this); }
+ SioPar() : sio_par{} { sio_initpar(this); }
void clear() { sio_initpar(this); }
};
diff --git a/alc/effects/autowah.cpp b/alc/effects/autowah.cpp
index 20c790b6..e9e14e35 100644
--- a/alc/effects/autowah.cpp
+++ b/alc/effects/autowah.cpp
@@ -50,18 +50,18 @@ constexpr float QFactor{5.0f};
struct AutowahState final : public EffectState {
/* Effect parameters */
- float mAttackRate;
- float mReleaseRate;
- float mResonanceGain;
- float mPeakGain;
- float mFreqMinNorm;
- float mBandwidthNorm;
- float mEnvDelay;
+ float mAttackRate{};
+ float mReleaseRate{};
+ float mResonanceGain{};
+ float mPeakGain{};
+ float mFreqMinNorm{};
+ float mBandwidthNorm{};
+ float mEnvDelay{};
/* Filter components derived from the envelope. */
struct FilterParam {
- float cos_w0;
- float alpha;
+ float cos_w0{};
+ float alpha{};
};
std::array<FilterParam,BufferLineSize> mEnv;
@@ -70,17 +70,17 @@ struct AutowahState final : public EffectState {
/* Effect filters' history. */
struct {
- float z1, z2;
+ float z1{}, z2{};
} mFilter;
/* Effect gains for each output channel */
- float mCurrentGain;
- float mTargetGain;
+ float mCurrentGain{};
+ float mTargetGain{};
};
std::array<ChannelData,MaxAmbiChannels> mChans;
/* Effects buffers */
- alignas(16) FloatBufferLine mBufferOut;
+ alignas(16) FloatBufferLine mBufferOut{};
void deviceUpdate(const DeviceBase *device, const BufferStorage *buffer) override;
diff --git a/alc/effects/chorus.cpp b/alc/effects/chorus.cpp
index d3bcd394..f56c9f2c 100644
--- a/alc/effects/chorus.cpp
+++ b/alc/effects/chorus.cpp
@@ -58,10 +58,10 @@ struct ChorusState final : public EffectState {
uint mLfoDisp{0};
/* Calculated delays to apply to the left and right outputs. */
- std::array<std::array<uint,BufferLineSize>,2> mModDelays;
+ std::array<std::array<uint,BufferLineSize>,2> mModDelays{};
/* Temp storage for the modulated left and right outputs. */
- alignas(16) std::array<FloatBufferLine,2> mBuffer;
+ alignas(16) std::array<FloatBufferLine,2> mBuffer{};
/* Gains for left and right outputs. */
struct OutGains {
diff --git a/alc/effects/dedicated.cpp b/alc/effects/dedicated.cpp
index 609776ad..a3d4298d 100644
--- a/alc/effects/dedicated.cpp
+++ b/alc/effects/dedicated.cpp
@@ -47,8 +47,8 @@ struct DedicatedState final : public EffectState {
* gains for all possible output channels and not just the main ambisonic
* buffer.
*/
- std::array<float,MaxOutputChannels> mCurrentGains;
- std::array<float,MaxOutputChannels> mTargetGains;
+ std::array<float,MaxOutputChannels> mCurrentGains{};
+ std::array<float,MaxOutputChannels> mTargetGains{};
void deviceUpdate(const DeviceBase *device, const BufferStorage *buffer) override;
diff --git a/alc/effects/echo.cpp b/alc/effects/echo.cpp
index 8def5e71..2f3343e8 100644
--- a/alc/effects/echo.cpp
+++ b/alc/effects/echo.cpp
@@ -66,7 +66,7 @@ struct EchoState final : public EffectState {
BiquadFilter mFilter;
float mFeedGain{0.0f};
- alignas(16) std::array<FloatBufferLine,2> mTempBuffer;
+ alignas(16) std::array<FloatBufferLine,2> mTempBuffer{};
void deviceUpdate(const DeviceBase *device, const BufferStorage *buffer) override;
void update(const ContextBase *context, const EffectSlot *slot, const EffectProps *props,
diff --git a/alc/effects/fshifter.cpp b/alc/effects/fshifter.cpp
index 2add8379..433ebfe4 100644
--- a/alc/effects/fshifter.cpp
+++ b/alc/effects/fshifter.cpp
@@ -57,7 +57,7 @@ constexpr size_t HilStep{HilSize / OversampleFactor};
/* Define a Hann window, used to filter the HIL input and output. */
struct Windower {
- alignas(16) std::array<double,HilSize> mData;
+ alignas(16) std::array<double,HilSize> mData{};
Windower()
{
diff --git a/alc/effects/pshifter.cpp b/alc/effects/pshifter.cpp
index 24171082..9714510f 100644
--- a/alc/effects/pshifter.cpp
+++ b/alc/effects/pshifter.cpp
@@ -58,7 +58,7 @@ constexpr size_t StftStep{StftSize / OversampleFactor};
/* Define a Hann window, used to filter the STFT input and output. */
struct Windower {
- alignas(16) std::array<float,StftSize> mData;
+ alignas(16) std::array<float,StftSize> mData{};
Windower()
{
@@ -82,29 +82,29 @@ struct FrequencyBin {
struct PshifterState final : public EffectState {
/* Effect parameters */
- size_t mCount;
- size_t mPos;
- uint mPitchShiftI;
- float mPitchShift;
+ size_t mCount{};
+ size_t mPos{};
+ uint mPitchShiftI{};
+ float mPitchShift{};
/* Effects buffers */
- std::array<float,StftSize> mFIFO;
- std::array<float,StftHalfSize+1> mLastPhase;
- std::array<float,StftHalfSize+1> mSumPhase;
- std::array<float,StftSize> mOutputAccum;
+ std::array<float,StftSize> mFIFO{};
+ std::array<float,StftHalfSize+1> mLastPhase{};
+ std::array<float,StftHalfSize+1> mSumPhase{};
+ std::array<float,StftSize> mOutputAccum{};
PFFFTSetup mFft;
- alignas(16) std::array<float,StftSize> mFftBuffer;
- alignas(16) std::array<float,StftSize> mFftWorkBuffer;
+ alignas(16) std::array<float,StftSize> mFftBuffer{};
+ alignas(16) std::array<float,StftSize> mFftWorkBuffer{};
- std::array<FrequencyBin,StftHalfSize+1> mAnalysisBuffer;
- std::array<FrequencyBin,StftHalfSize+1> mSynthesisBuffer;
+ std::array<FrequencyBin,StftHalfSize+1> mAnalysisBuffer{};
+ std::array<FrequencyBin,StftHalfSize+1> mSynthesisBuffer{};
- alignas(16) FloatBufferLine mBufferOut;
+ alignas(16) FloatBufferLine mBufferOut{};
/* Effect gains for each output channel */
- std::array<float,MaxAmbiChannels> mCurrentGains;
- std::array<float,MaxAmbiChannels> mTargetGains;
+ std::array<float,MaxAmbiChannels> mCurrentGains{};
+ std::array<float,MaxAmbiChannels> mTargetGains{};
void deviceUpdate(const DeviceBase *device, const BufferStorage *buffer) override;
diff --git a/alc/effects/reverb.cpp b/alc/effects/reverb.cpp
index 4318fa28..cc5768e2 100644
--- a/alc/effects/reverb.cpp
+++ b/alc/effects/reverb.cpp
@@ -417,12 +417,12 @@ struct Modulation {
/* The vibrato time is tracked with an index over a (MOD_FRACONE)
* normalized range.
*/
- uint Index, Step;
+ uint Index{}, Step{};
/* The depth of frequency change, in samples. */
- float Depth;
+ float Depth{};
- std::array<float,MAX_UPDATE_SAMPLES> ModDelays;
+ std::array<float,MAX_UPDATE_SAMPLES> ModDelays{};
void updateModulator(float modTime, float modDepth, float frequency);
diff --git a/common/alsem.h b/common/alsem.h
index 9f72d1c6..90b39319 100644
--- a/common/alsem.h
+++ b/common/alsem.h
@@ -24,7 +24,7 @@ class semaphore {
#else
using native_type = sem_t;
#endif
- native_type mSem;
+ native_type mSem{};
public:
semaphore(unsigned int initial=0);
diff --git a/common/polyphase_resampler.h b/common/polyphase_resampler.h
index 557485bb..764111c9 100644
--- a/common/polyphase_resampler.h
+++ b/common/polyphase_resampler.h
@@ -40,7 +40,7 @@ struct PPhaseResampler {
explicit operator bool() const noexcept { return !mF.empty(); }
private:
- uint mP, mQ, mM, mL;
+ uint mP{}, mQ{}, mM{}, mL{};
std::vector<double> mF;
};
diff --git a/core/bformatdec.h b/core/bformatdec.h
index 35cf20a2..8513db03 100644
--- a/core/bformatdec.h
+++ b/core/bformatdec.h
@@ -25,15 +25,15 @@ class BFormatDec {
static constexpr size_t sNumBands{2};
struct ChannelDecoderSingle {
- std::array<float,MaxOutputChannels> mGains;
+ std::array<float,MaxOutputChannels> mGains{};
};
struct ChannelDecoderDual {
BandSplitter mXOver;
- std::array<std::array<float,MaxOutputChannels>,sNumBands> mGains;
+ std::array<std::array<float,MaxOutputChannels>,sNumBands> mGains{};
};
- alignas(16) std::array<FloatBufferLine,2> mSamples;
+ alignas(16) std::array<FloatBufferLine,2> mSamples{};
const std::unique_ptr<FrontStablizer> mStablizer;
diff --git a/core/device.h b/core/device.h
index d85b9254..f02700c6 100644
--- a/core/device.h
+++ b/core/device.h
@@ -237,17 +237,17 @@ struct DeviceBase {
static constexpr size_t MixerLineSize{BufferLineSize + DecoderBase::sMaxPadding};
static constexpr size_t MixerChannelsMax{16};
using MixerBufferLine = std::array<float,MixerLineSize>;
- alignas(16) std::array<MixerBufferLine,MixerChannelsMax> mSampleData;
- alignas(16) std::array<float,MixerLineSize+MaxResamplerPadding> mResampleData;
+ alignas(16) std::array<MixerBufferLine,MixerChannelsMax> mSampleData{};
+ alignas(16) std::array<float,MixerLineSize+MaxResamplerPadding> mResampleData{};
- alignas(16) std::array<float,BufferLineSize> FilteredData;
+ alignas(16) std::array<float,BufferLineSize> FilteredData{};
union {
- alignas(16) std::array<float,BufferLineSize+HrtfHistoryLength> HrtfSourceData;
+ alignas(16) std::array<float,BufferLineSize+HrtfHistoryLength> HrtfSourceData{};
alignas(16) std::array<float,BufferLineSize> NfcSampleData;
};
/* Persistent storage for HRTF mixing. */
- alignas(16) std::array<float2,BufferLineSize+HrirLength> HrtfAccumData;
+ alignas(16) std::array<float2,BufferLineSize+HrirLength> HrtfAccumData{};
/* Mixing buffer used by the Dry mix and Real output. */
al::vector<FloatBufferLine, 16> MixBuffer;
diff --git a/core/filters/nfc.h b/core/filters/nfc.h
index 7d0a7488..9c58f863 100644
--- a/core/filters/nfc.h
+++ b/core/filters/nfc.h
@@ -8,24 +8,24 @@
struct NfcFilter1 {
- float base_gain, gain;
- float b1, a1;
- std::array<float,1> z;
+ float base_gain{1.0f}, gain{1.0f};
+ float b1{}, a1{};
+ std::array<float,1> z{};
};
struct NfcFilter2 {
- float base_gain, gain;
- float b1, b2, a1, a2;
- std::array<float,2> z;
+ float base_gain{1.0f}, gain{1.0f};
+ float b1{}, b2{}, a1{}, a2{};
+ std::array<float,2> z{};
};
struct NfcFilter3 {
- float base_gain, gain;
- float b1, b2, b3, a1, a2, a3;
- std::array<float,3> z;
+ float base_gain{1.0f}, gain{1.0f};
+ float b1{}, b2{}, b3{}, a1{}, a2{}, a3{};
+ std::array<float,3> z{};
};
struct NfcFilter4 {
- float base_gain, gain;
- float b1, b2, b3, b4, a1, a2, a3, a4;
- std::array<float,4> z;
+ float base_gain{1.0f}, gain{1.0f};
+ float b1{}, b2{}, b3{}, b4{}, a1{}, a2{}, a3{}, a4{};
+ std::array<float,4> z{};
};
class NfcFilter {
diff --git a/core/hrtf.h b/core/hrtf.h
index e0263493..7a1a8b69 100644
--- a/core/hrtf.h
+++ b/core/hrtf.h
@@ -61,7 +61,7 @@ struct AngularPoint {
struct DirectHrtfState {
- std::array<float,BufferLineSize> mTemp;
+ std::array<float,BufferLineSize> mTemp{};
/* HRTF filter state for dry buffer content */
uint mIrSize{0};
diff --git a/core/uhjfilter.h b/core/uhjfilter.h
index 58576beb..74ff2167 100644
--- a/core/uhjfilter.h
+++ b/core/uhjfilter.h
@@ -25,7 +25,7 @@ extern UhjQualityType UhjEncodeQuality;
struct UhjAllPassFilter {
struct AllPassState {
/* Last two delayed components for direct form II. */
- std::array<float,2> z;
+ std::array<float,2> z{};
};
std::array<AllPassState,4> mState;
diff --git a/core/voice.h b/core/voice.h
index 2ecc8148..aaf1c5fd 100644
--- a/core/voice.h
+++ b/core/voice.h
@@ -66,14 +66,14 @@ struct DirectParams {
NfcFilter NFCtrlFilter;
struct {
- HrtfFilter Old;
- HrtfFilter Target;
- alignas(16) std::array<float,HrtfHistoryLength> History;
+ HrtfFilter Old{};
+ HrtfFilter Target{};
+ alignas(16) std::array<float,HrtfHistoryLength> History{};
} Hrtf;
struct {
- std::array<float,MaxOutputChannels> Current;
- std::array<float,MaxOutputChannels> Target;
+ std::array<float,MaxOutputChannels> Current{};
+ std::array<float,MaxOutputChannels> Target{};
} Gains;
};
@@ -82,8 +82,8 @@ struct SendParams {
BiquadFilter HighPass;
struct {
- std::array<float,MaxAmbiChannels> Current;
- std::array<float,MaxAmbiChannels> Target;
+ std::array<float,MaxAmbiChannels> Current{};
+ std::array<float,MaxAmbiChannels> Target{};
} Gains;
};
@@ -184,7 +184,7 @@ struct Voice {
std::atomic<VoicePropsItem*> mUpdate{nullptr};
- VoiceProps mProps;
+ VoiceProps mProps{};
std::atomic<uint> mSourceID{0u};
std::atomic<State> mPlayState{Stopped};
@@ -194,30 +194,30 @@ struct Voice {
* Source offset in samples, relative to the currently playing buffer, NOT
* the whole queue.
*/
- std::atomic<int> mPosition;
+ std::atomic<int> mPosition{};
/** Fractional (fixed-point) offset to the next sample. */
- std::atomic<uint> mPositionFrac;
+ std::atomic<uint> mPositionFrac{};
/* Current buffer queue item being played. */
- std::atomic<VoiceBufferItem*> mCurrentBuffer;
+ std::atomic<VoiceBufferItem*> mCurrentBuffer{};
/* Buffer queue item to loop to at end of queue (will be NULL for non-
* looping voices).
*/
- std::atomic<VoiceBufferItem*> mLoopBuffer;
+ std::atomic<VoiceBufferItem*> mLoopBuffer{};
std::chrono::nanoseconds mStartTime{};
/* Properties for the attached buffer(s). */
- FmtChannels mFmtChannels;
- FmtType mFmtType;
- uint mFrequency;
- uint mFrameStep; /**< In steps of the sample type size. */
- uint mBytesPerBlock; /**< Or for PCM formats, BytesPerFrame. */
- uint mSamplesPerBlock; /**< Always 1 for PCM formats. */
- AmbiLayout mAmbiLayout;
- AmbiScaling mAmbiScaling;
- uint mAmbiOrder;
+ FmtChannels mFmtChannels{};
+ FmtType mFmtType{};
+ uint mFrequency{};
+ uint mFrameStep{}; /**< In steps of the sample type size. */
+ uint mBytesPerBlock{}; /**< Or for PCM formats, BytesPerFrame. */
+ uint mSamplesPerBlock{}; /**< Always 1 for PCM formats. */
+ AmbiLayout mAmbiLayout{};
+ AmbiScaling mAmbiScaling{};
+ uint mAmbiOrder{};
std::unique_ptr<DecoderBase> mDecoder;
uint mDecoderPadding{};
@@ -225,16 +225,16 @@ struct Voice {
/** Current target parameters used for mixing. */
uint mStep{0};
- ResamplerFunc mResampler;
+ ResamplerFunc mResampler{};
- InterpState mResampleState;
+ InterpState mResampleState{};
std::bitset<VoiceFlagCount> mFlags{};
uint mNumCallbackBlocks{0};
uint mCallbackBlockBase{0};
struct TargetData {
- int FilterType;
+ int FilterType{};
al::span<FloatBufferLine> Buffer;
};
TargetData mDirect;
@@ -249,7 +249,7 @@ struct Voice {
al::vector<HistoryLine,16> mPrevSamples{2};
struct ChannelData {
- float mAmbiHFScale, mAmbiLFScale;
+ float mAmbiHFScale{}, mAmbiLFScale{};
BandSplitter mAmbiSplitter;
DirectParams mDryParams;
diff --git a/examples/alffplay.cpp b/examples/alffplay.cpp
index 347d0b14..7a4b7aac 100644
--- a/examples/alffplay.cpp
+++ b/examples/alffplay.cpp
@@ -322,7 +322,7 @@ struct AudioState {
std::mutex mSrcMutex;
std::condition_variable mSrcCond;
- std::atomic_flag mConnected;
+ std::atomic_flag mConnected{};
ALuint mSource{0};
std::array<ALuint,AudioBufferCount> mBuffers{};
ALuint mBufferIdx{0};
diff --git a/examples/alstreamcb.cpp b/examples/alstreamcb.cpp
index 95f89bbe..1721d367 100644
--- a/examples/alstreamcb.cpp
+++ b/examples/alstreamcb.cpp
@@ -79,7 +79,7 @@ struct StreamPlayer {
size_t mDecoderOffset{0};
/* The format of the callback samples. */
- ALenum mFormat;
+ ALenum mFormat{};
StreamPlayer()
{
diff --git a/utils/makemhr/makemhr.cpp b/utils/makemhr/makemhr.cpp
index 80e217ee..014b2967 100644
--- a/utils/makemhr/makemhr.cpp
+++ b/utils/makemhr/makemhr.cpp
@@ -871,10 +871,10 @@ static void SynthesizeHrirs(HrirDataT *hData)
*/
struct HrirReconstructor {
std::vector<double*> mIrs;
- std::atomic<size_t> mCurrent;
- std::atomic<size_t> mDone;
- uint mFftSize;
- uint mIrPoints;
+ std::atomic<size_t> mCurrent{};
+ std::atomic<size_t> mDone{};
+ uint mFftSize{};
+ uint mIrPoints{};
void Worker()
{