diff options
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | video/theora_decoder.cpp | 6 |
2 files changed, 7 insertions, 1 deletions
@@ -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; } } |