Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6ae6779 authored by Shunkai Yao's avatar Shunkai Yao Committed by Automerger Merge Worker
Browse files

Merge "Visualizer: default capture size VISUALIZER_CAPTURE_SIZE_MAX" into main am: f6e3d164

parents 258c89c4 f6e3d164
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -59,7 +59,8 @@ namespace aidl::android::hardware::audio::effect {
const std::string VisualizerImpl::kEffectName = "Visualizer";
const std::string VisualizerImpl::kEffectName = "Visualizer";
const std::vector<Range::VisualizerRange> VisualizerImpl::kRanges = {
const std::vector<Range::VisualizerRange> VisualizerImpl::kRanges = {
        MAKE_RANGE(Visualizer, latencyMs, 0, VisualizerContext::kMaxLatencyMs),
        MAKE_RANGE(Visualizer, latencyMs, 0, VisualizerContext::kMaxLatencyMs),
        MAKE_RANGE(Visualizer, captureSamples, 0, VisualizerContext::kMaxCaptureBufSize),
        MAKE_RANGE(Visualizer, captureSamples, VisualizerContext::kMinCaptureBufSize,
                   VisualizerContext::kMaxCaptureBufSize),
        /* get only parameters, set invalid range (min > max) to indicate not support set */
        /* get only parameters, set invalid range (min > max) to indicate not support set */
        MAKE_RANGE(Visualizer, measurement, Visualizer::Measurement({.rms = 1, .peak = 1}),
        MAKE_RANGE(Visualizer, measurement, Visualizer::Measurement({.rms = 1, .peak = 1}),
                   Visualizer::Measurement({.rms = 0, .peak = 0})),
                   Visualizer::Measurement({.rms = 0, .peak = 0})),
+1 −1
Original line number Original line Diff line number Diff line
@@ -93,7 +93,7 @@ RetCode VisualizerContext::setCaptureSamples(int samples) {
    mCaptureSamples = samples;
    mCaptureSamples = samples;
    return RetCode::SUCCESS;
    return RetCode::SUCCESS;
}
}
int VisualizerContext::getCaptureSamples() {
int32_t VisualizerContext::getCaptureSamples() {
    std::lock_guard lg(mMutex);
    std::lock_guard lg(mMutex);
    return mCaptureSamples;
    return mCaptureSamples;
}
}
+9 −5
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@


#include <android-base/thread_annotations.h>
#include <android-base/thread_annotations.h>
#include <audio_effects/effect_dynamicsprocessing.h>
#include <audio_effects/effect_dynamicsprocessing.h>
#include <system/audio_effects/effect_visualizer.h>


#include "effect-impl/EffectContext.h"
#include "effect-impl/EffectContext.h"


@@ -25,8 +26,11 @@ namespace aidl::android::hardware::audio::effect {


class VisualizerContext final : public EffectContext {
class VisualizerContext final : public EffectContext {
  public:
  public:
    static const uint32_t kMaxCaptureBufSize = 65536;
    // need align the min/max capture size to VISUALIZER_CAPTURE_SIZE_MIN and
    static const uint32_t kMaxLatencyMs = 3000;  // 3 seconds of latency for audio pipeline
    // VISUALIZER_CAPTURE_SIZE_MAX because of limitation in audio_utils fixedfft.
    static constexpr int32_t kMinCaptureBufSize = VISUALIZER_CAPTURE_SIZE_MIN;
    static constexpr int32_t kMaxCaptureBufSize = VISUALIZER_CAPTURE_SIZE_MAX;
    static constexpr uint32_t kMaxLatencyMs = 3000;  // 3 seconds of latency for audio pipeline


    VisualizerContext(int statusDepth, const Parameter::Common& common);
    VisualizerContext(int statusDepth, const Parameter::Common& common);
    ~VisualizerContext();
    ~VisualizerContext();
@@ -38,8 +42,8 @@ class VisualizerContext final : public EffectContext {
    // keep all parameters and reset buffer.
    // keep all parameters and reset buffer.
    void reset();
    void reset();


    RetCode setCaptureSamples(int captureSize);
    RetCode setCaptureSamples(int32_t captureSize);
    int getCaptureSamples();
    int32_t getCaptureSamples();
    RetCode setMeasurementMode(Visualizer::MeasurementMode mode);
    RetCode setMeasurementMode(Visualizer::MeasurementMode mode);
    Visualizer::MeasurementMode getMeasurementMode();
    Visualizer::MeasurementMode getMeasurementMode();
    RetCode setScalingMode(Visualizer::ScalingMode mode);
    RetCode setScalingMode(Visualizer::ScalingMode mode);
@@ -86,7 +90,7 @@ class VisualizerContext final : public EffectContext {
    // capture buf with 8 bits mono PCM samples
    // capture buf with 8 bits mono PCM samples
    std::array<uint8_t, kMaxCaptureBufSize> mCaptureBuf GUARDED_BY(mMutex);
    std::array<uint8_t, kMaxCaptureBufSize> mCaptureBuf GUARDED_BY(mMutex);
    uint32_t mDownstreamLatency GUARDED_BY(mMutex) = 0;
    uint32_t mDownstreamLatency GUARDED_BY(mMutex) = 0;
    uint32_t mCaptureSamples GUARDED_BY(mMutex) = kMaxCaptureBufSize;
    int32_t mCaptureSamples GUARDED_BY(mMutex) = kMaxCaptureBufSize;


    // to avoid recomputing it every time a buffer is processed
    // to avoid recomputing it every time a buffer is processed
    uint8_t mChannelCount GUARDED_BY(mMutex) = 0;
    uint8_t mChannelCount GUARDED_BY(mMutex) = 0;