Loading media/libaudiohal/EffectBufferHalHidl.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,8 @@ status_t EffectBufferHalInterface::mirror( } EffectBufferHalHidl::EffectBufferHalHidl(size_t size) : mBufferSize(size), mExternalData(nullptr), mAudioBuffer{0, {nullptr}} { : mBufferSize(size), mFrameCountChanged(false), mExternalData(nullptr), mAudioBuffer{0, {nullptr}} { mHidlBuffer.id = makeUniqueId(); mHidlBuffer.frameCount = 0; } Loading Loading @@ -107,6 +108,13 @@ void* EffectBufferHalHidl::externalData() const { void EffectBufferHalHidl::setFrameCount(size_t frameCount) { mHidlBuffer.frameCount = frameCount; mAudioBuffer.frameCount = frameCount; mFrameCountChanged = true; } bool EffectBufferHalHidl::checkFrameCountChange() { bool result = mFrameCountChanged; mFrameCountChanged = false; return result; } void EffectBufferHalHidl::setExternalData(void* external) { Loading media/libaudiohal/EffectBufferHalHidl.h +2 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ class EffectBufferHalHidl : public EffectBufferHalInterface virtual void setExternalData(void* external); virtual void setFrameCount(size_t frameCount); virtual bool checkFrameCountChange(); virtual void update(); virtual void commit(); Loading @@ -51,6 +52,7 @@ class EffectBufferHalHidl : public EffectBufferHalInterface static uint64_t makeUniqueId(); const size_t mBufferSize; bool mFrameCountChanged; void* mExternalData; AudioBuffer mHidlBuffer; sp<IMemory> mMemory; Loading media/libaudiohal/EffectBufferHalLocal.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -39,13 +39,13 @@ status_t EffectBufferHalInterface::mirror( EffectBufferHalLocal::EffectBufferHalLocal(size_t size) : mOwnBuffer(new uint8_t[size]), mBufferSize(size), mBufferSize(size), mFrameCountChanged(false), mAudioBuffer{0, {mOwnBuffer.get()}} { } EffectBufferHalLocal::EffectBufferHalLocal(void* external, size_t size) : mOwnBuffer(nullptr), mBufferSize(size), mBufferSize(size), mFrameCountChanged(false), mAudioBuffer{0, {external}} { } Loading @@ -62,6 +62,7 @@ void* EffectBufferHalLocal::externalData() const { void EffectBufferHalLocal::setFrameCount(size_t frameCount) { mAudioBuffer.frameCount = frameCount; mFrameCountChanged = true; } void EffectBufferHalLocal::setExternalData(void* external) { Loading @@ -69,6 +70,12 @@ void EffectBufferHalLocal::setExternalData(void* external) { mAudioBuffer.raw = external; } bool EffectBufferHalLocal::checkFrameCountChange() { bool result = mFrameCountChanged; mFrameCountChanged = false; return result; } void EffectBufferHalLocal::update() { } Loading media/libaudiohal/EffectBufferHalLocal.h +2 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ class EffectBufferHalLocal : public EffectBufferHalInterface virtual void setExternalData(void* external); virtual void setFrameCount(size_t frameCount); virtual bool checkFrameCountChange(); virtual void update(); virtual void commit(); Loading @@ -43,6 +44,7 @@ class EffectBufferHalLocal : public EffectBufferHalInterface std::unique_ptr<uint8_t[]> mOwnBuffer; const size_t mBufferSize; bool mFrameCountChanged; audio_buffer_t mAudioBuffer; // Can not be constructed directly by clients. Loading media/libaudiohal/EffectHalHidl.cpp +8 −1 Original line number Diff line number Diff line Loading @@ -168,13 +168,20 @@ status_t EffectHalHidl::prepareForProcessing() { return OK; } bool EffectHalHidl::needToResetBuffers() { if (mBuffersChanged) return true; bool inBufferFrameCountUpdated = mInBuffer->checkFrameCountChange(); bool outBufferFrameCountUpdated = mOutBuffer->checkFrameCountChange(); return inBufferFrameCountUpdated || outBufferFrameCountUpdated; } status_t EffectHalHidl::processImpl(uint32_t mqFlag) { if (mEffect == 0 || mInBuffer == 0 || mOutBuffer == 0) return NO_INIT; status_t status; if (!mStatusMQ && (status = prepareForProcessing()) != OK) { return status; } if (mBuffersChanged && (status = setProcessBuffers()) != OK) { if (needToResetBuffers() && (status = setProcessBuffers()) != OK) { return status; } // The data is already in the buffers, just need to flush it and wake up the server side. Loading Loading
media/libaudiohal/EffectBufferHalHidl.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,8 @@ status_t EffectBufferHalInterface::mirror( } EffectBufferHalHidl::EffectBufferHalHidl(size_t size) : mBufferSize(size), mExternalData(nullptr), mAudioBuffer{0, {nullptr}} { : mBufferSize(size), mFrameCountChanged(false), mExternalData(nullptr), mAudioBuffer{0, {nullptr}} { mHidlBuffer.id = makeUniqueId(); mHidlBuffer.frameCount = 0; } Loading Loading @@ -107,6 +108,13 @@ void* EffectBufferHalHidl::externalData() const { void EffectBufferHalHidl::setFrameCount(size_t frameCount) { mHidlBuffer.frameCount = frameCount; mAudioBuffer.frameCount = frameCount; mFrameCountChanged = true; } bool EffectBufferHalHidl::checkFrameCountChange() { bool result = mFrameCountChanged; mFrameCountChanged = false; return result; } void EffectBufferHalHidl::setExternalData(void* external) { Loading
media/libaudiohal/EffectBufferHalHidl.h +2 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ class EffectBufferHalHidl : public EffectBufferHalInterface virtual void setExternalData(void* external); virtual void setFrameCount(size_t frameCount); virtual bool checkFrameCountChange(); virtual void update(); virtual void commit(); Loading @@ -51,6 +52,7 @@ class EffectBufferHalHidl : public EffectBufferHalInterface static uint64_t makeUniqueId(); const size_t mBufferSize; bool mFrameCountChanged; void* mExternalData; AudioBuffer mHidlBuffer; sp<IMemory> mMemory; Loading
media/libaudiohal/EffectBufferHalLocal.cpp +9 −2 Original line number Diff line number Diff line Loading @@ -39,13 +39,13 @@ status_t EffectBufferHalInterface::mirror( EffectBufferHalLocal::EffectBufferHalLocal(size_t size) : mOwnBuffer(new uint8_t[size]), mBufferSize(size), mBufferSize(size), mFrameCountChanged(false), mAudioBuffer{0, {mOwnBuffer.get()}} { } EffectBufferHalLocal::EffectBufferHalLocal(void* external, size_t size) : mOwnBuffer(nullptr), mBufferSize(size), mBufferSize(size), mFrameCountChanged(false), mAudioBuffer{0, {external}} { } Loading @@ -62,6 +62,7 @@ void* EffectBufferHalLocal::externalData() const { void EffectBufferHalLocal::setFrameCount(size_t frameCount) { mAudioBuffer.frameCount = frameCount; mFrameCountChanged = true; } void EffectBufferHalLocal::setExternalData(void* external) { Loading @@ -69,6 +70,12 @@ void EffectBufferHalLocal::setExternalData(void* external) { mAudioBuffer.raw = external; } bool EffectBufferHalLocal::checkFrameCountChange() { bool result = mFrameCountChanged; mFrameCountChanged = false; return result; } void EffectBufferHalLocal::update() { } Loading
media/libaudiohal/EffectBufferHalLocal.h +2 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ class EffectBufferHalLocal : public EffectBufferHalInterface virtual void setExternalData(void* external); virtual void setFrameCount(size_t frameCount); virtual bool checkFrameCountChange(); virtual void update(); virtual void commit(); Loading @@ -43,6 +44,7 @@ class EffectBufferHalLocal : public EffectBufferHalInterface std::unique_ptr<uint8_t[]> mOwnBuffer; const size_t mBufferSize; bool mFrameCountChanged; audio_buffer_t mAudioBuffer; // Can not be constructed directly by clients. Loading
media/libaudiohal/EffectHalHidl.cpp +8 −1 Original line number Diff line number Diff line Loading @@ -168,13 +168,20 @@ status_t EffectHalHidl::prepareForProcessing() { return OK; } bool EffectHalHidl::needToResetBuffers() { if (mBuffersChanged) return true; bool inBufferFrameCountUpdated = mInBuffer->checkFrameCountChange(); bool outBufferFrameCountUpdated = mOutBuffer->checkFrameCountChange(); return inBufferFrameCountUpdated || outBufferFrameCountUpdated; } status_t EffectHalHidl::processImpl(uint32_t mqFlag) { if (mEffect == 0 || mInBuffer == 0 || mOutBuffer == 0) return NO_INIT; status_t status; if (!mStatusMQ && (status = prepareForProcessing()) != OK) { return status; } if (mBuffersChanged && (status = setProcessBuffers()) != OK) { if (needToResetBuffers() && (status = setProcessBuffers()) != OK) { return status; } // The data is already in the buffers, just need to flush it and wake up the server side. Loading