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

Commit d250e41d authored by Phil Burk's avatar Phil Burk Committed by Automerger Merge Worker
Browse files

Merge "audioflinger: fix FIXME in logBufferSizeUnderruns" into rvc-dev am: 167afa70

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/11690113

Change-Id: Ifaf8faa84e487762f685267d51f9194c3709e9ee
parents 04782aa1 167afa70
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -288,7 +288,7 @@ aaudio_result_t AudioStreamInternal::release_l() {
            requestStop();
        }

        logBufferState();
        logReleaseBufferState();

        setState(AAUDIO_STREAM_STATE_CLOSING);
        aaudio_handle_t serviceStreamHandle = mServiceStreamHandle;
@@ -783,6 +783,14 @@ aaudio_result_t AudioStreamInternal::setBufferSize(int32_t requestedFrames) {
        adjustedFrames = std::min(actualFrames, adjustedFrames);
    }

    if (adjustedFrames != mBufferSizeInFrames) {
        android::mediametrics::LogItem(mMetricsId)
                .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_SETBUFFERSIZE)
                .set(AMEDIAMETRICS_PROP_BUFFERSIZEFRAMES, adjustedFrames)
                .set(AMEDIAMETRICS_PROP_UNDERRUN, (int32_t) getXRunCount())
                .record();
    }

    mBufferSizeInFrames = adjustedFrames;
    ALOGV("%s(%d) returns %d", __func__, requestedFrames, adjustedFrames);
    return (aaudio_result_t) adjustedFrames;
+2 −1
Original line number Diff line number Diff line
@@ -116,9 +116,10 @@ void AudioStream::logOpen() {
    }
}

void AudioStream::logBufferState() {
void AudioStream::logReleaseBufferState() {
    if (mMetricsId.size() > 0) {
        android::mediametrics::LogItem(mMetricsId)
                .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_RELEASE)
                .set(AMEDIAMETRICS_PROP_BUFFERSIZEFRAMES, (int32_t) getBufferSize())
                .set(AMEDIAMETRICS_PROP_UNDERRUN, (int32_t) getXRunCount())
                .record();
+1 −1
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ public:

    // log to MediaMetrics
    virtual void logOpen();
    void logBufferState();
    void logReleaseBufferState();

    /**
     * Free any hardware or system resources from the open() call.
+1 −1
Original line number Diff line number Diff line
@@ -292,7 +292,7 @@ aaudio_result_t AudioStreamRecord::release_l() {
    //  Then call it from here
    if (getState() != AAUDIO_STREAM_STATE_CLOSING) {
        mAudioRecord->removeAudioDeviceCallback(mDeviceCallback);
        logBufferState();
        logReleaseBufferState();
        mAudioRecord.clear();
        mFixedBlockWriter.close();
        return AudioStream::release_l();
+1 −1
Original line number Diff line number Diff line
@@ -254,7 +254,7 @@ aaudio_result_t AudioStreamTrack::open(const AudioStreamBuilder& builder)
aaudio_result_t AudioStreamTrack::release_l() {
    if (getState() != AAUDIO_STREAM_STATE_CLOSING) {
        mAudioTrack->removeAudioDeviceCallback(mDeviceCallback);
        logBufferState();
        logReleaseBufferState();
        // TODO Investigate why clear() causes a hang in test_various.cpp
        // if I call close() from a data callback.
        // But the same thing in AudioRecord is OK!
Loading