summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mikhail Naganov <mnaganov@google.com> 2022-04-19 21:24:30 +0000
committer Mikhail Naganov <mnaganov@google.com> 2022-09-01 23:33:46 +0000
commit97f6e72db492d91c254fff54169ea6788e0ff2d7 (patch)
tree45b43933c0b0908c0d9fc332f937264c0265a6e2
parent1206d8d742a3292b8b582b5c699569062287b9f2 (diff)
Visualizer: use actual sampling rate of the instance
Visualizer.getSamplingRate method was always returning the same value. This is not valid since the actual sampling rate depends on the audio stream where the Visualizer is instantiated. Bug: 162727518 Test: atest CtsMediaAudioTestCases:VisualizerTest Merged-In: Ia2fc453ce8b6b0e11e61bc00c764f822b39cf951 Change-Id: Ia2fc453ce8b6b0e11e61bc00c764f822b39cf951
-rw-r--r--media/jni/audioeffect/Visualizer.cpp11
-rw-r--r--media/jni/audioeffect/Visualizer.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/media/jni/audioeffect/Visualizer.cpp b/media/jni/audioeffect/Visualizer.cpp
index 193a5d4f3dc0..d0f1ec6064c1 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 c402c10ccae1..3d5d74a99d0e 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;