From 6315192e2bed6df96eabf5edb3780b79eb361aa3 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Sat, 29 Oct 2011 03:47:02 +0000 Subject: [PATCH] Don't reuse buffers in the audio provider converters, as it isn't thread-safe to do so and making it thread-safe would hurt performance more than the extra allocations Originally committed to SVN as r5800. --- aegisub/src/audio_provider_convert.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/aegisub/src/audio_provider_convert.cpp b/aegisub/src/audio_provider_convert.cpp index 13f195db0..eaa28e1ae 100644 --- a/aegisub/src/audio_provider_convert.cpp +++ b/aegisub/src/audio_provider_convert.cpp @@ -49,7 +49,6 @@ public: /// Anything -> 16 bit signed machine-endian audio converter template class BitdepthConvertAudioProvider : public AudioProviderConverter { - mutable std::vector src_buf; int src_bytes_per_sample; bool src_is_native_endian; public: @@ -63,7 +62,7 @@ public: } void GetAudio(void *buf, int64_t start, int64_t count) const { - src_buf.resize(count * src_bytes_per_sample * channels); + std::vector src_buf(count * src_bytes_per_sample * channels); source->GetAudio(&src_buf[0], start, count); int16_t *dest = reinterpret_cast(buf); @@ -106,7 +105,6 @@ public: /// Non-mono 16-bit signed machine-endian -> mono 16-bit signed machine endian converter class DownmixAudioProvider : public AudioProviderConverter { - mutable std::vector src_buf; int src_channels; public: DownmixAudioProvider(AudioProvider *src) : AudioProviderConverter(src) { @@ -121,7 +119,7 @@ public: void GetAudio(void *buf, int64_t start, int64_t count) const { if (count == 0) return; - src_buf.resize(count * src_channels); + std::vector src_buf(count * src_channels); source->GetAudio(&src_buf[0], start, count); int16_t *dst = reinterpret_cast(buf);