diff options
-rw-r--r-- | video/smk_decoder.cpp | 7 | ||||
-rw-r--r-- | video/smk_decoder.h | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/video/smk_decoder.cpp b/video/smk_decoder.cpp index d01ec730f4..bea65142a1 100644 --- a/video/smk_decoder.cpp +++ b/video/smk_decoder.cpp @@ -410,7 +410,6 @@ void SmackerDecoder::close() { bool SmackerDecoder::rewind() { // Call the parent method to rewind the tracks first - // In particular, only videos without sound can be rewound if (!VideoDecoder::rewind()) return false; @@ -755,6 +754,12 @@ SmackerDecoder::SmackerAudioTrack::~SmackerAudioTrack() { delete _audioStream; } +bool SmackerDecoder::SmackerAudioTrack::rewind() { + delete _audioStream; + _audioStream = Audio::makeQueuingAudioStream(_audioInfo.sampleRate, _audioInfo.isStereo); + return true; +} + Audio::AudioStream *SmackerDecoder::SmackerAudioTrack::getAudioStream() const { return _audioStream; } diff --git a/video/smk_decoder.h b/video/smk_decoder.h index 6bded64a37..7227238373 100644 --- a/video/smk_decoder.h +++ b/video/smk_decoder.h @@ -156,6 +156,9 @@ private: SmackerAudioTrack(const AudioInfo &audioInfo, Audio::Mixer::SoundType soundType); ~SmackerAudioTrack(); + bool isRewindable() const { return true; } + bool rewind(); + Audio::Mixer::SoundType getSoundType() const { return _soundType; } void queueCompressedBuffer(byte *buffer, uint32 bufferSize, uint32 unpackedSize); |