diff options
author | Cameron Cawley | 2018-08-01 20:10:55 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-03 14:52:09 +0200 |
commit | 5cf3b75deb345b6e76699a208dd94d4cfcb4ea12 (patch) | |
tree | 95c54d85f11e06f4affa6f3c249186489cde2516 | |
parent | 2649c429dbf30e1035fbc2d59a70e390b30327b2 (diff) | |
download | scummvm-rg350-5cf3b75deb345b6e76699a208dd94d4cfcb4ea12.tar.gz scummvm-rg350-5cf3b75deb345b6e76699a208dd94d4cfcb4ea12.tar.bz2 scummvm-rg350-5cf3b75deb345b6e76699a208dd94d4cfcb4ea12.zip |
VIDEO: Fix Theora playback when building with Tremor
-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; } } |