diff --git a/media/jni/audioeffect/Visualizer.cpp b/media/jni/audioeffect/Visualizer.cpp index 193a5d4f3dc05..d0f1ec6064c1b 100644 --- a/media/jni/audioeffect/Visualizer.cpp +++ b/media/jni/audioeffect/Visualizer.cpp @@ -60,6 +60,7 @@ status_t Visualizer::set(int32_t priority, SL_IID_VISUALIZATION, nullptr, priority, cbf, user, sessionId, io, device, probe); if (status == NO_ERROR || status == ALREADY_EXISTS) { initCaptureSize(); + initSampleRate(); } return status; } @@ -413,6 +414,16 @@ uint32_t Visualizer::initCaptureSize() return size; } +void Visualizer::initSampleRate() +{ + audio_config_base_t inputConfig, outputConfig; + status_t status = getConfigs(&inputConfig, &outputConfig); + if (status == NO_ERROR) { + mSampleRate = outputConfig.sample_rate * 1000; + } + ALOGV("%s sample rate %d status %d", __func__, mSampleRate, status); +} + void Visualizer::controlStatusChanged(bool controlGranted) { if (controlGranted) { // this Visualizer instance regained control of the effect, reset the scaling mode diff --git a/media/jni/audioeffect/Visualizer.h b/media/jni/audioeffect/Visualizer.h index c402c10ccae1b..3d5d74a99d0e3 100644 --- a/media/jni/audioeffect/Visualizer.h +++ b/media/jni/audioeffect/Visualizer.h @@ -170,6 +170,7 @@ private: status_t doFft(uint8_t *fft, uint8_t *waveform); void periodicCapture(); uint32_t initCaptureSize(); + void initSampleRate(); Mutex mCaptureLock; uint32_t mCaptureRate = CAPTURE_RATE_DEF;