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

Commit e96c3564 authored by Andy Hung's avatar Andy Hung Committed by Android (Google) Code Review
Browse files

Merge "AudioFlinger: Do not dereference a nullptr for a reference" into udc-dev-plus-aosp

parents 89a53c86 12dcf867
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -373,7 +373,7 @@ class PatchTrackBase : public PatchProxyBufferProvider, public virtual IAfPatchT
{
{
public:
public:
                        PatchTrackBase(const sp<ClientProxy>& proxy,
                        PatchTrackBase(const sp<ClientProxy>& proxy,
                                       const IAfThreadBase& thread,
                                       IAfThreadBase* thread,
                                       const Timeout& timeout);
                                       const Timeout& timeout);
            void setPeerTimeout(std::chrono::nanoseconds timeout) final;
            void setPeerTimeout(std::chrono::nanoseconds timeout) final;
            void setPeerProxy(const sp<IAfPatchTrackBase>& proxy, bool holdReference) final {
            void setPeerProxy(const sp<IAfPatchTrackBase>& proxy, bool holdReference) final {
+5 −5
Original line number Original line Diff line number Diff line
@@ -315,15 +315,15 @@ status_t TrackBase::setSyncEvent(
}
}


PatchTrackBase::PatchTrackBase(const sp<ClientProxy>& proxy,
PatchTrackBase::PatchTrackBase(const sp<ClientProxy>& proxy,
        const IAfThreadBase& thread, const Timeout& timeout)
        IAfThreadBase* thread, const Timeout& timeout)
    : mProxy(proxy)
    : mProxy(proxy)
{
{
    if (timeout) {
    if (timeout) {
        setPeerTimeout(*timeout);
        setPeerTimeout(*timeout);
    } else {
    } else {
        // Double buffer mixer
        // Double buffer mixer
        uint64_t mixBufferNs = ((uint64_t)2 * thread.frameCount() * 1000000000) /
        uint64_t mixBufferNs = ((uint64_t)2 * thread->frameCount() * 1000000000) /
                                              thread.sampleRate();
                                              thread->sampleRate();
        setPeerTimeout(std::chrono::nanoseconds{mixBufferNs});
        setPeerTimeout(std::chrono::nanoseconds{mixBufferNs});
    }
    }
}
}
@@ -2453,7 +2453,7 @@ PatchTrack::PatchTrack(IAfPlaybackThread* playbackThread,
              TYPE_PATCH, AUDIO_PORT_HANDLE_NONE, frameCountToBeReady),
              TYPE_PATCH, AUDIO_PORT_HANDLE_NONE, frameCountToBeReady),
        PatchTrackBase(mCblk ? new ClientProxy(mCblk, mBuffer, frameCount, mFrameSize, true, true)
        PatchTrackBase(mCblk ? new ClientProxy(mCblk, mBuffer, frameCount, mFrameSize, true, true)
                        : nullptr,
                        : nullptr,
                       *playbackThread, timeout)
                       playbackThread, timeout)
{
{
    ALOGV("%s(%d): sampleRate %d mPeerTimeout %d.%03d sec",
    ALOGV("%s(%d): sampleRate %d mPeerTimeout %d.%03d sec",
                                      __func__, mId, sampleRate,
                                      __func__, mId, sampleRate,
@@ -3127,7 +3127,7 @@ PatchRecord::PatchRecord(IAfRecordThread* recordThread,
                audioServerAttributionSource(getpid()), flags, TYPE_PATCH),
                audioServerAttributionSource(getpid()), flags, TYPE_PATCH),
        PatchTrackBase(mCblk ? new ClientProxy(mCblk, mBuffer, frameCount, mFrameSize, false, true)
        PatchTrackBase(mCblk ? new ClientProxy(mCblk, mBuffer, frameCount, mFrameSize, false, true)
                        : nullptr,
                        : nullptr,
                       *recordThread, timeout)
                       recordThread, timeout)
{
{
    ALOGV("%s(%d): sampleRate %d mPeerTimeout %d.%03d sec",
    ALOGV("%s(%d): sampleRate %d mPeerTimeout %d.%03d sec",
                                      __func__, mId, sampleRate,
                                      __func__, mId, sampleRate,