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

Commit 70ec6205 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "[AIDL CTS] Fix visualizer cts issue with AIDL effects" am: d5101e99

parents 341a7875 d5101e99
Loading
Loading
Loading
Loading
+1 −14
Original line number Diff line number Diff line
@@ -60,8 +60,7 @@ const std::map<uint32_t /* effect_command_e */, EffectConversionHelperAidl::Comm
                {EFFECT_CMD_SET_INPUT_DEVICE, &EffectConversionHelperAidl::handleSetDevice},
                {EFFECT_CMD_SET_VOLUME, &EffectConversionHelperAidl::handleSetVolume},
                {EFFECT_CMD_OFFLOAD, &EffectConversionHelperAidl::handleSetOffload},
                {EFFECT_CMD_FIRST_PROPRIETARY, &EffectConversionHelperAidl::handleFirstPriority},
                // Only visualizer support these commands
                // Only visualizer support these commands, reuse of EFFECT_CMD_FIRST_PROPRIETARY
                {VISUALIZER_CMD_CAPTURE, &EffectConversionHelperAidl::handleVisualizerCapture},
                {VISUALIZER_CMD_MEASURE, &EffectConversionHelperAidl::handleVisualizerMeasure}};

@@ -278,18 +277,6 @@ status_t EffectConversionHelperAidl::handleSetOffload(uint32_t cmdSize, const vo
    return *static_cast<int32_t*>(pReplyData) = OK;
}

status_t EffectConversionHelperAidl::handleFirstPriority(uint32_t cmdSize __unused,
                                                         const void* pCmdData __unused,
                                                         uint32_t* replySize, void* pReplyData) {
    if (!replySize || !pReplyData) {
        ALOGE("%s parameter invalid %p %p", __func__, replySize, pReplyData);
        return BAD_VALUE;
    }

    // TODO to be implemented
    return OK;
}

status_t EffectConversionHelperAidl::handleVisualizerCapture(uint32_t cmdSize __unused,
                                                             const void* pCmdData __unused,
                                                             uint32_t* replySize,
+0 −2
Original line number Diff line number Diff line
@@ -96,8 +96,6 @@ class EffectConversionHelperAidl {
                             void* pReplyData);
    status_t handleSetOffload(uint32_t cmdSize, const void* pCmdData, uint32_t* replySize,
                              void* pReplyData);
    status_t handleFirstPriority(uint32_t cmdSize, const void* pCmdData, uint32_t* replySize,
                                 void* pReplyData);
    status_t handleVisualizerCapture(uint32_t cmdSize, const void* pCmdData, uint32_t* replySize,
                                     void* pReplyData);
    status_t handleVisualizerMeasure(uint32_t cmdSize, const void* pCmdData, uint32_t* replySize,
+8 −2
Original line number Diff line number Diff line
@@ -191,9 +191,15 @@ Visualizer::Measurement VisualizerContext::getMeasure() {
std::vector<uint8_t> VisualizerContext::capture() {
    std::vector<uint8_t> result;
    std::lock_guard lg(mMutex);
    RETURN_VALUE_IF(mState != State::ACTIVE, result, "illegalState");
    const uint32_t deltaMs = getDeltaTimeMsFromUpdatedTime_l();
    // cts android.media.audio.cts.VisualizerTest expecting silence data when effect not running
    // RETURN_VALUE_IF(mState != State::ACTIVE, result, "illegalState");
    if (mState != State::ACTIVE) {
        result.resize(mCaptureSamples);
        memset(result.data(), 0x80, mCaptureSamples);
        return result;
    }

    const uint32_t deltaMs = getDeltaTimeMsFromUpdatedTime_l();
    // if audio framework has stopped playing audio although the effect is still active we must
    // clear the capture buffer to return silence
    if ((mLastCaptureIdx == mCaptureIdx) && (mBufferUpdateTime.tv_sec != 0) &&
+1 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ class VisualizerContext final : public EffectContext {
    uint32_t mLastCaptureIdx GUARDED_BY(mMutex) = 0;
    Visualizer::ScalingMode mScalingMode GUARDED_BY(mMutex) = Visualizer::ScalingMode::NORMALIZED;
    struct timespec mBufferUpdateTime GUARDED_BY(mMutex);
    // capture buf with 8 bits PCM
    // capture buf with 8 bits mono PCM samples
    std::array<uint8_t, kMaxCaptureBufSize> mCaptureBuf GUARDED_BY(mMutex);
    uint32_t mDownstreamLatency GUARDED_BY(mMutex) = 0;
    uint32_t mCaptureSamples GUARDED_BY(mMutex) = kMaxCaptureBufSize;