From b9faaa3304c9d80f777aaa748d25b2cbc754176f Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Wed, 10 Jan 2024 17:47:44 -0800 Subject: SoundPool: Enable multithreaded track start Test: atest SoundPoolOggTest SoundPoolAacTest SoundPoolMidiTest SoundPoolHapticTest Bug: 319405227 Change-Id: If5e30df1ecb5dad6f5f1d740a20d2a9d82673e77 --- media/jni/soundpool/StreamManager.cpp | 3 +-- media/jni/soundpool/StreamManager.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/media/jni/soundpool/StreamManager.cpp b/media/jni/soundpool/StreamManager.cpp index 52060f1e6209..66fec1c528e7 100644 --- a/media/jni/soundpool/StreamManager.cpp +++ b/media/jni/soundpool/StreamManager.cpp @@ -35,10 +35,9 @@ static constexpr int32_t kMaxStreams = 32; // In R, we change this to true, as it is the correct way per SoundPool documentation. static constexpr bool kStealActiveStream_OldestFirst = true; -// kPlayOnCallingThread = true prior to R. // Changing to false means calls to play() are almost instantaneous instead of taking around // ~10ms to launch the AudioTrack. It is perhaps 100x faster. -static constexpr bool kPlayOnCallingThread = true; +static constexpr bool kPlayOnCallingThread = false; // Amount of time for a StreamManager thread to wait before closing. static constexpr int64_t kWaitTimeBeforeCloseNs = 9 * NANOS_PER_SECOND; diff --git a/media/jni/soundpool/StreamManager.h b/media/jni/soundpool/StreamManager.h index adbab4b0f9d9..340b49bc6d6c 100644 --- a/media/jni/soundpool/StreamManager.h +++ b/media/jni/soundpool/StreamManager.h @@ -48,7 +48,7 @@ class JavaThread { public: JavaThread(std::function f, const char *name) : mF{std::move(f)} { - createThreadEtc(staticFunction, this, name); + createThreadEtc(staticFunction, this, name, ANDROID_PRIORITY_AUDIO); } JavaThread(JavaThread &&) = delete; // uses "this" ptr, not moveable. -- cgit v1.2.3-59-g8ed1b