diff options
Diffstat (limited to 'variablespeed/jni/jni_entry.cc')
-rw-r--r-- | variablespeed/jni/jni_entry.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/variablespeed/jni/jni_entry.cc b/variablespeed/jni/jni_entry.cc index 368d230..d679475 100644 --- a/variablespeed/jni/jni_entry.cc +++ b/variablespeed/jni/jni_entry.cc @@ -81,9 +81,12 @@ JNI_METHOD(initializeEngine, void) (JNIEnv*, jclass, float initialRate, size_t decodeInitialSize, size_t decodeMaxSize, size_t startPositionMillis, int audioStreamType) { MethodLog _("initializeEngine"); - AudioEngine::SetEngine(new AudioEngine(targetFrames, + AudioEngine *engine = new AudioEngine(targetFrames, windowDuration, windowOverlapDuration, maxPlayBufferCount, initialRate, - decodeInitialSize, decodeMaxSize, startPositionMillis, audioStreamType)); + decodeInitialSize, decodeMaxSize, startPositionMillis, audioStreamType); + if (!AudioEngine::CompareAndSetEngine(NULL, engine)) { + delete engine; + } } JNI_METHOD(shutdownEngine, void) (JNIEnv*, jclass) { |