summaryrefslogtreecommitdiffstats
path: root/variablespeed/jni/jni_entry.cc
diff options
context:
space:
mode:
Diffstat (limited to 'variablespeed/jni/jni_entry.cc')
-rw-r--r--variablespeed/jni/jni_entry.cc7
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) {