aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfigure2
-rw-r--r--video/theora_decoder.cpp6
2 files changed, 7 insertions, 1 deletions
diff --git a/configure b/configure
index cd10153204..4c82580a21 100755
--- a/configure
+++ b/configure
@@ -4205,7 +4205,7 @@ echo "$_png"
# Check for Theora Decoder
#
echocheck "libtheoradec >= 1.0"
-if test "$_vorbis" = no ; then
+if test "$_vorbis" = no && test "$_tremor" = no ; then
echo "skipping. no vorbis"
_theoradec=notsupported
fi
diff --git a/video/theora_decoder.cpp b/video/theora_decoder.cpp
index 7ed9738ea9..f00bd485f9 100644
--- a/video/theora_decoder.cpp
+++ b/video/theora_decoder.cpp
@@ -356,9 +356,11 @@ Audio::AudioStream *TheoraDecoder::VorbisAudioTrack::getAudioStream() const {
#define AUDIOFD_FRAGSIZE 10240
+#ifndef USE_TREMOR
static double rint(double v) {
return floor(v + 0.5);
}
+#endif
bool TheoraDecoder::VorbisAudioTrack::decodeSamples() {
#ifdef USE_TREMOR
@@ -383,7 +385,11 @@ bool TheoraDecoder::VorbisAudioTrack::decodeSamples() {
for (i = 0; i < ret && i < maxsamples; i++) {
for (int j = 0; j < channels; j++) {
+#ifdef USE_TREMOR
+ int val = CLIP(pcm[j][i] >> 9, -32768, 32767);
+#else
int val = CLIP((int)rint(pcm[j][i] * 32767.f), -32768, 32767);
+#endif
_audioBuffer[count++] = val;
}
}