aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorColin Snover2017-11-19 20:44:18 -0600
committerColin Snover2017-11-19 20:53:00 -0600
commit9fc24e19f234ba53fb450223137a8041932ecd51 (patch)
treeab5244289cefc3f4c38bdefd1ccfa66a3c1d9c0d /audio
parentdbba22e5710bbd63d83569cae6d873c7b0704745 (diff)
downloadscummvm-rg350-9fc24e19f234ba53fb450223137a8041932ecd51.tar.gz
scummvm-rg350-9fc24e19f234ba53fb450223137a8041932ecd51.tar.bz2
scummvm-rg350-9fc24e19f234ba53fb450223137a8041932ecd51.zip
AUDIO: Fix data race in PacketizedMP3Stream
Diffstat (limited to 'audio')
-rw-r--r--audio/decoders/mp3.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/audio/decoders/mp3.cpp b/audio/decoders/mp3.cpp
index 93c21b9072..54da6c584d 100644
--- a/audio/decoders/mp3.cpp
+++ b/audio/decoders/mp3.cpp
@@ -119,6 +119,7 @@ public:
// AudioStream API
int readBuffer(int16 *buffer, const int numSamples);
+ bool endOfData() const;
bool endOfStream() const;
// PacketizedAudioStream API
@@ -484,12 +485,17 @@ int PacketizedMP3Stream::readBuffer(int16 *buffer, const int numSamples) {
return samples;
}
+bool PacketizedMP3Stream::endOfData() const {
+ Common::StackLock lock(_mutex);
+ return BaseMP3Stream::endOfData();
+}
+
bool PacketizedMP3Stream::endOfStream() const {
+ Common::StackLock lock(_mutex);
+
if (!endOfData())
return false;
- // Lock the mutex
- Common::StackLock lock(_mutex);
if (!_queue.empty())
return false;