Package: libsoundtouch0
Version: 1.7.1-1
Severity: serious
Tags: sid jessie patch
Control: affects -1 + src:audacity

In version 1.7.1 of soundtouch
|     #if (defined(__SOFTFP__))
|         // For Android compilation: Force use of Integer samples in case that
|         // compilation uses soft-floating point emulation - soft-fp is way 
too slow
|         #undef  SOUNDTOUCH_FLOAT_SAMPLES
|         #define SOUNDTOUCH_INTEGER_SAMPLES      1
|     #endif
was added to include/STTypes.h [1]. Since __SOFTFP__ is defined on
armel, SAMPLETYPE changed from float to short and the signatures of some
functions changed.

For example, take the following simple program:
| #include <soundtouch/FIFOSampleBuffer.h>
| int main()
| {
|   soundtouch::FIFOSampleBuffer f;
|   soundtouch::SAMPLETYPE s = 0;
|   f.putSamples(&s, 1);
| }

When compiled and linked against a version prior to 1.7.1 and then
upgrading to 1.7.1, the program fails to run:
% ./a.out
./a.out: symbol lookup error: ./a.out: undefined symbol: 
_ZN10soundtouch16FIFOSampleBuffer10putSamplesEPKfj

The attached patch reverts this change and restores ABI compatibility.

Regards
-- 
Sebastian Ramacher
diff --git a/include/STTypes.h b/include/STTypes.h
index ed4231b..8820a53 100644
--- a/include/STTypes.h
+++ b/include/STTypes.h
@@ -78,13 +78,6 @@ namespace soundtouch
     //#undef SOUNDTOUCH_INTEGER_SAMPLES
     //#undef SOUNDTOUCH_FLOAT_SAMPLES
 
-    #if (defined(__SOFTFP__))
-        // For Android compilation: Force use of Integer samples in case that
-        // compilation uses soft-floating point emulation - soft-fp is way too slow
-        #undef  SOUNDTOUCH_FLOAT_SAMPLES
-        #define SOUNDTOUCH_INTEGER_SAMPLES      1
-    #endif
-
     #if !(SOUNDTOUCH_INTEGER_SAMPLES || SOUNDTOUCH_FLOAT_SAMPLES)
        
         /// Choose either 32bit floating point or 16bit integer sampletype

Attachment: signature.asc
Description: Digital signature

Reply via email to